• 今天在做东西的时候不小心发现了由于定义了text-indent而引起的宽度问题,主要是定义了首页行缩进后宽度受影响。于是去群里问了一下,还是有收获的。豆豆猫提供了一个例子《IE显示宽度和高度的问题》,主要是说li奇、偶数时显示不同的问题,虽然他只是觉得这个Demo很奇怪,但后来我发现这个例子中的问题也是由于text-indent引起的,所以在这里也感谢
  • 做过活动页面的同学可能会遇到要做背景半透明的效果,我们一般的做法是用两个层,一个用于放文字,另一个用于做透明背景,因为透明滤镜的效果会影响到里面的内容。不过如果你只需求在IE下实现,我们有更简单的做法:

    ================HTML======================
    <div class="alpha1">
      <div class="ap2">
          <p>背景为红色(#FF0000),透明度20%。</p>
      </div>
    </div>
    ==========================================
    ==================CSS======================
    .alpha1{
        width:300px;
        height:200px;
        background-color:#FF0000;
        filter: Alpha(Opacity=30);
    }
    .ap2{
        position:relative;
    }
    ==========================================

    样就可以实现啦,也不用担心定位和自适应问题,最大的问题就是IEonly。
    如果兼容FF、OP怎么写呢?首先,上面这种定法是不行的啦,那就只能用两个层重叠的方法啦。改下页面结构:

    =================HTML======================
    <div class="alpha1">
      <div class="ap2">
          <p>背景为红色(#FF0000),透明度20%。</p>
      </div>
      <!--[if IE]><![if !IE]><![endif]--> <div class="alpha2"></div> <!--[if IE]><![endif]><![endif]-->
    </div>
    ==========================================

    当然样式也得做修改啦:

    ==================CSS======================
    .alpha1,.alpha2{
        width:100%;
        height:auto;
        min-height:250px;/* 必需 */
        _height:250px;/* 必需 */
        overflow:hidden;
        background-color:#FF0000;/* 背景色 */
    }
    .alpha1{
        filter:alpha(opacity=20); /* IE 透明度20% */
    }
    .alpha2{
        background-color:#FFFFFF;
        -moz-opacity:0.8; /* Moz + FF 透明度20%*/
        opacity: 0.8; /* 支持CSS3的浏览器(FF 1.5也支持)透明度20%*/
    }
    .ap2{
        position:absolute;
    }
    ==========================================

    完整Demo

  • CSS森林(30247792)群里讨论一个margin的问题中无意间发现overflow也可以用来清除浮动,嘿嘿,这个方法不单使用简单,而且FF、OP、IE7都支持,从此可以告别那又长兼容性又差的FF清浮动的方法了。

    方法真的很简单,只要为需要清浮动的标签加上overflow这个属性。

    ====================CSS=========================
    ul{list-style:none;height:auto;margin:0;padding:0;background-color:#436973;}
    li{float:left;width:80px;height:80px;background-color:#83B1DF;}
    .demo{clear:both;border:1px solid #FF00FF;margin-bottom:5px;}
    .overflow{overflow:auto;zoom:1;background-color:#43FF73;}

    ===============================================

    ====================HTML=======================
    <div class="demo">
    <ul class="overflow">
    <li>1</li>
    <li>2</li>
    <li>3</li>
    <li>4</li>
    <li>5</li>
    <li>6</li>
    <li>7</li>
    <li>8</li>
    <li>9</li>
    </ul>
    </div>
    <div class="demo">
    <ul>
    <li>1</li>
    <li>2</li>
    <li>3</li>
    <li>4</li>
    <li>5</li>
    <li>6</li>
    <li>7</li>
    <li>8</li>
    <li>9</li>
    </ul>
    </div>

    ===============================================
    其中zoom是为了IE6准备的。

    完整的Demo

    注:忘了一个很重要的内容,并不是所有的overflow属性都可起来一样的效果,比如visible属性就只能对IE起作用。例子可以看这里Demo2
    这样的话就有一个问题啦,如果要有高度,而且内容超出高度的时候,定义auto或hidden都可能会有一些不想要的效果出现。这里提供一个解决方案:对于IE6及以下版本的IE,可以直接定义高度;对于IE7、FF、OP,可定义min-height。
    ====================CSS=========================
    .overflow{height:auto;_height:200px;min-height:200px;overflow:auto;zoom:1;}
    ===============================================

  • 看了之前的《两列一边宽度固定,另一边宽度自适应布局》后,觉得iVane的方法还可以再优化一下的,比如可以少用一个div……

    自适应的问题也是布局中常会遇到的问题,最早用负边界的方法解决了高度自适应,没想法现在用负边界同样可以解决宽度自适应的问题。来看看怎样做吧:

    ================HTML===================
    <body>
    <div id="top">top</div>
    <div id="main">
     <div id="midpart"><p>主要内容部分,宽高自适应。</p></div>
     <div id="leftpart"><p>左栏宽200像素,高度自适应。</p></div>
    </div>
    <div id="bottom">bottom</div>
    </body>
    ======================================

    ================CSS===================
    #top,#bottom{
    clear:both;
    width:100%;
    height:auto;
    padding:10px 0;
    background-color:#0099FF;
    }
    #main{
    _width:100%;
    height:auto;
    overflow:hidden;
    padding:0;
    padding-left:200px;
    color:#000000;
    }
    #leftpart,#midpart{
    height:auto;
    margin-bottom:-32767px;
    padding-bottom:32767px;
    }
    #midpart{
    float:right;
    width:100%;
    background-color:#00CC99;
    }
    #leftpart{
    _display:inline;
    float:left;
    width:200px;
    margin-left:-200px;
    padding-top:30px;
    background-color:#999900;
    }
    ======================================

    完整的Demo

    这里对宽度自适应做了优化,并增加了高度自适应。如果要改成其它的二栏布局就很容易啦,比如可以改成“右栏定宽”或“左右栏都自适应宽高”。大家自己发挥吧~:)

    注:此布局兼容IE5.5+、FF2、OP9+,其它版本的浏览没有测试过,有条件的同学帮忙看下吧。

  • 在iVane的Blog上看到一篇《两列一边宽度固定,另一边宽度自适应布局》,方法很不错,原文如下:

    ================================================

    这个布局其实在实际应用中是经常用到的, 比如我这个blog的布局结构也是这样的, 利用这个布局还可以延伸到三列去, 甚至更多的变化.

    ...
  • 整理了一下自己写CSS时的顺序,跟大家分享下。

    下表顺序为从上到下,从左到右:
    ============================
    display || visibility
    list-style : list-style-type || list-style-position || list-style-image
    position
    top || right || bottom || left
    z-index
    clear
    float

    width
    max-width || min-width
    height
    max-height || min-height
    overflow || clip
    margin : margin-top || margin-right || margin-bottom || margin-left
    padding : padding-top || padding-right || padding-bottom || padding-left
    outline : outline-color || outline-style || outline-width
    border
    background : background-color || background-image || background-repeat || background-attachment || background-position

    color
    font : font-style || font-variant || font-weight || font-size || line-height || font-family
    font : caption | icon | menu | message-box | small-caption | status-bar
    text-overflow
    text-align
    text-indent
    line-height
    white-space
    vertical-align
    cursor
    ============================

  • 近来发现对图像替换的方法越来越多人在意了,主要是因为“display:none”对SEO与屏幕阅读器不友好,而且还提出了解决方法,其中比较好的还是利用负值隐藏文字的方式(个人觉得)。然后一味的使用这种方法,真的就正确吗?

    其实什么情况下会用到图像替换呢?

    logo,做为一个站点的视觉标志,真的应该做成背景吗?图像按钮(虽然不太建议使用链接去做按钮,但有时看是按钮的东东也只是起来链接的作用),有支持SEO的必要吗?使用样式背景是为了什么呢?把表现的图片从内容中分离出来,使内容结构合理、完整。即然是装饰性的图片,还需要支持SEO吗?当然,如果你是做垃圾站的话,不在此列。

    ...
  • 看到这个标题很容易就会想到截断文字加“...”的做法。哈哈,就是这样。其实写这篇日志也只是把这样方法做个记录,因为好像写了这么多次,还是会不太记得。嘿嘿~~

    一般的文字截断(适用于内联与块):
    ==============CSS================ 
    .text-overflow{
    display:block;/*内联对象需加*/
    width:31em;
    word-break:keep-all;/* 不换行 */
    white-space:nowrap;/* 不换行 */
    overflow:hidden;/* 内容超出宽度时隐藏超出部分的内容 */
    text-overflow:ellipsis;/* 当对象内文本溢出时显示省...