zoukankan      html  css  js  c++  java
  • 细节决定成败——无CSS时网页的可读性 狼人:

    先上示例,携程首页酒店模块的效果图如下:

    代码结构如下:

    1. <dl> 
    2. <dt>酒店</dt> 
    3. <dd>北京</dd> 
    4. <dd>上海</dd> 
    5. </dl> 
    6. <ul> 
    7. <li>北京酒店列表</li> 
    8. <li>北京酒店列表</li> 
    9. <li>上海酒店列表</li> 
    10. <li>上海酒店列表</li> 
    11. </ul>  

    这种结构在显示上没有任何问题,切换城市时下面的列表会相应改变。但当无法正常加载css时显示效果就比较杯具了,截图如下:

    接下去是其它城市的列表,太长了图片没有截全。我们需要的至少是城市与所属它的列表显示在一起,在视觉上归属同一个模块,也就是说要在代码结构上把它们按照业务逻辑重现出来:

    1. <dl> 
    2. <dt>北京</dt> 
    3. <dd> 
    4.   <ul> 
    5.    <li>北京酒店列表</li> 
    6.    <li>北京酒店列表</li> 
    7.   </ul> 
    8. </dd> 
    9. </dl> 
    10. <dl> 
    11. <dt>上海</dt> 
    12. <dd> 
    13.   <ul> 
    14.    <li>上海酒店列表</li> 
    15.    <li>上海酒店列表</li> 
    16.   </ul> 
    17. </dd> 
    18. </dl>  

    这样当页面出现no css的时候显示效果就比较接近真实需求:

    到这里就离成功不远了,接下来的问题是如何用现在的 dl, dt, dd 实现想要的视觉效果。

    1. 先给所有 dl 的外层 div 加样式:position: relative,再给 dd 设置 position: absolute,这样列表就可以脱离 dl 的文本流了,切换列表时保证它们显示在同一个位置;

    2. 城市横排显示,这时设 dl 为浮动 float: left,再刷新果然横过去了。不过现在笑还早了点,不要忘了还有那万恶的 IE6 要兼容:给 dt 设置浮动并转行内元素,否则会有多余的空隙 float: left; display: inline; 再刷新就OK了;

    3. 补充一点为什么要在 dd 中加 ul,这要视页面结构而定,每一条除了标题还有价格,还有个需要转化的人民币符号 ¥,如果直接用 a 链接就需要大批量行内转块元素,比较耗性能。最初想用多个 dd,但因为有绝对定位的原因列表会重叠在一起,所以更换方案。

    原文链接:http://ued.ctrip.com/blog/?p=1083 

  • 相关阅读:
    手机号码正则表达式
    POJ 3233 Matrix Power Series 矩阵快速幂
    UVA 11468
    UVA 1449
    HDU 2896 病毒侵袭 AC自动机
    HDU 3065 病毒侵袭持续中 AC自动机
    HDU 2222 Keywords Search AC自动机
    POJ 3461 Oulipo KMP模板题
    POJ 1226 Substrings KMP
    UVA 1455 Kingdom 线段树+并查集
  • 原文地址:https://www.cnblogs.com/waw/p/2186788.html
Copyright © 2011-2022 走看看