阳光网驿-企业信息化交流平台【DTC零售连锁全渠道解决方案】

 找回密码
 注册

QQ登录

只需一步,快速开始

扫描二维码登录本站

手机号码,快捷登录

手机号码,快捷登录

老司机
查看: 1554|回复: 1

[转帖] 常用CSS元素div ul dl dt ol的解释 1

[复制链接]
  • TA的每日心情
    郁闷
    2012-3-7 10:18
  • 签到天数: 1 天

    [LV.1]初来乍到

    发表于 2012-1-18 14:49:52 | 显示全部楼层 |阅读模式
    几个css元素的简单解释 div ul dl dt oldiv,这个很常见,块级元素,div尽量少用,和table一样,嵌套越少越好
    ol 有序列表。
    <ol>
    <li>……</li>
    <li>……</li>
    <li>……</li>
    </ol>

    表现为:
    1……
    2……
    3……

    ul 无序列表,表现为li前面是大圆点而不是123
    <ul>
    <li>……</li>
    <li>……</li>
    </ul>

    很多人容易忽略 dl dt dd的用法
    dl 内容块
    dt 内容块的标题
    dd 内容
    可以这么写:

    <dl>
    <dt>标题</dt>

    <dd>内容1</dd>
    <dd>内容2</dd>

    </dl>
    dt 和dd中可以再加入 ol ul li和p
    理解这些以后,在使用div布局的时候,会方便很多,w3c提供了很多元素辅助布局

    由于项目中编写文档结构、编写CSS的人员较多,并与程序员协同工作,就需要统一class与id的名称,前天花了一点时间,按照大多人的习惯,制定了下面的常用关键字:
    容 器:container/box
    头 部:header
    主 导 航:mainNav
    子 导 航:subNav
    顶 导 航:topNav
    网站标志:logo
    大 广 告:banner
    页面中部:mainBody
    底 部:footer
    菜 单:menu
    菜单内容:menuContent
    子 菜 单:subMenu
    子菜单内容:subMenuContent
    搜 索:search
    搜索关键字:keyword
    搜索范围:range
    标签文字:tagTitle
    标签内容:tagContent
    当前标签:tagCurrent/currentTag
    标  题:title
    内 容:content
    列 表:list
    当前位置:currentPath
    侧 边 栏:sidebar
    图 标:icon
    注 释:note
    登 录:login
    注 册:register
    列 定 义:column_1of3 (三列中的第一列)
    column_2of3 (三列中的第二列)
    column_3of3 (三列中的第三列)

    代码精简
      使用DIV CSS布局,页面代码精简,这一点相信对XHTML有所了解的都知道。代码精简所带来的直接好处有两点:一是提高spider爬行效率,能在最短的时间内爬完整个页面,这样对收录质量有一定好处;二是由于能高效的爬行,就会受到spider喜欢,这样对收录数量有一定好处。
      表格的嵌套问题搜索引擎一般不抓取三层以上的表格嵌套,这一点一直没有得到搜索引擎官方的证实。我的几项实验结果没有完全出来,但根据目前掌握的情况来看,spider爬行Table布局的页面,遇到多层表格嵌套时,会跳过嵌套的内容或直接放弃整个页面。
      使用Table布局,为了达到一定的视觉效果,不得不套用多个表格。如果嵌套的表格中是核心内容,spider爬行时跳过了这一段没有抓取到页面的核心,这个页面就成了相似页面。网站中过多的相似页面会影响排名及域名信任度。
      而DIV CSS布局基本上不会存在这样的问题,从技术角度来说,XHTML在控制样式时也不需要过多的嵌套。搜索引擎优化及营销都是非常有利的。搜索引擎表示排名规则会倾向于符合W3C标准的网站或页面,但事实证明使用XTHML架构的网站排名状况一般都不错。这一点或许会有争议,但樂思蜀本人保持这样的观点,有异议者可以拿三组以上基本同等质量的网站对比观察。
      我想,这样的情况可能不是排名规则,最大的可能还是spider爬行网站时,出现以上差异导致收录质量的不同。
      毕竟廖胜于无,建议建站或改版的朋友们,技术许可的情况下,还是选择DIV CSS布局为好。
    CSS布局常用的方法:float:none|left|right
    取值:
    none: 默认值。对象不飘浮
    left: 文本流向对象的右边
    right: 文本流向对象的左边

    它是怎样工作的,看个一行两列的例子
    xhtml:
    <div id="wrap">
    <div id="column1">这里是第一列</div>
    <div id="column2">这里是第二列</div>
    <div class="clear"></div>
    </div>
    CSS:
    #wrap{width:100;height:auto;}
    #column1{float:left;width:40;}
    #column2{float:right;width:60;}
    .clear{clear:both;}

    position:static|absolute|fixed|relative
    取值:
    static: 默认值。无特殊定位,对象遵循HTML定位规则
    absolute: 将对象从文档流中拖出,使用left,right,top,bottom等属性相对于其最接近的一个最有定位设置的父对象进行绝对定位。如果不存在这样的父对象,则依据body对象。而其层叠通过z-index属性定义
    fixed: 未支持。对象定位遵从绝对(absolute)方式。但是要遵守一些规范
    relative: 对象不可层叠,但将依据left,right,top,bottom等属性在正常文档流中偏移位置

    它来实现一行两列的例子
    xhtml:
    <div id="wrap">
    <div id="column1">这里是第一列</div>
    <div id="column2">这里是第二列</div>
    </div>
    CSS:
    #wrap{position:relative;width:770px;}
    #column1{position:absolute;top:0;left:0;width:300px;}
    #column2{position:absolute;top:0;right:0;width:470px;}
    他们的区别在哪?
    显然,float是相对定位的,会随着浏览器的大小和分辨率的变化而改变,而position就不行了,所以一般情况下还是float布局!

    CSS常用布局实例
    单行一列
    body{margin:0px;padding:0px;text-align:center;}
    #content{margin-left:auto;margin-right:auto;width:400px;}

    两行一列
    body{margin:0px;padding:0px;text-align:center;}
    #content-top{margin-left:auto;margin-right:auto;width:400px;}
    #content-end{margin-left:auto;margin-right:auto;width:400px;}

    三行一列
    body{margin:0px;padding:0px;text-align:center;}
    #content-top{margin-left:auto;margin-right:auto;width:400px;width:370px;}
    #content-mid{margin-left:auto;margin-right:auto;width:400px;}
    #content-end{margin-left:auto;margin-right:auto;width:400px;}

    单行两列
    #bodycenter{width:700px;margin-right:auto;margin-left:auto;overflow:auto;}
    #bodycenter#dv1{float:left;width:280px;}
    #bodycenter#dv2{float:right;width:420px;}

    两行两列
    #header{width:700px;margin-right:auto;margin-left:auto;overflow:auto;}
    #bodycenter{width:700px;margin-right:auto;margin-left:auto;overflow:auto;}
    #bodycenter#dv1{float:left;width:280px;}
    #bodycenter#dv2{float:right;width:420px;}

    三行两列
    #header{width:700px;margin-right:auto;margin-left:auto;}
    #bodycenter{width:700px;margin-right:auto;margin-left:auto;}
    #bodycenter#dv1{float:left;width:280px;}
    #bodycenter#dv2{float:right;width:420px;}
    #footer{width:700px;margin-right:auto;margin-left:auto;overflow:auto;clear:both;}

    单行三列
    绝对定位
    #left{position:absolute;top:0px;left:0px;width:120px;}
    #middle{margin:0px190px0px190px;}
    #right{position:absolute;top:0px;right:0px;width:120px;}

    float定位
    xhtml:
    <div id="wrap">
    <div id="column">
    <div id="column1">这里是第一列</div>
    <div id="column2">这里是第二列</div>
    <div class="clear"></div>
    </div>
    <divid="column3">这里是第三列</div>
    <divclass="clear"></div>
    </div>
    CSS:
    #wrap{width:100;height:auto;}
    #column{float:left;width:60;}
    #column1{float:left;width:30;}
    #column2{float:right;width:30;}
    #column3{float:right;width:40;}
    .clear{clear:both;}

    float定位二
    xhtml
    <div id="center"class="column">
    <h1>Thisisthemaincontent.</h1>
    </div>
    <div id="left"class="column">
    <h2>Thisistheleftsidebar.</h2>
    </div>
    <div id="right"class="column">
    <h2>Thisistherightsidebar.</h2>
    </div>
    CSS
    body{
    margin:0;
    padding-left:200px;
    padding-right:190px;
    min-width:200px;
    }
    .column{
    position:relative;
    float:left;
    }
    #center{
    width:100;
    }
    #left{
    width:200px;
    right:200px;
    margin-left:-100;
    }
    #right{
    width:190px;
    margin-right:-100;
    }


    *html#left{
    left:190px;
    }
    这样的一个指令:(position),在DreamWeaver中文版中翻译为“定位”,常用的属性有两个:relative(相对)与 absolute(绝对)。有很多朋友对这条指令的用法还是不清楚,这里做一些细致的讲解。
      position:relative; 表示相对定位,被定位了这个属性的标签在所属的范围内可以进行上下左右的移,这里的移动与padding或是margin所产生的位置变化是不一样的。padding与margin是元素本身的一种边距与填充距离并不是真正的移动,而被定义为relative的元素是真正的移动,这所产生的移动距离是从margin的外围到父级标签内侧之间这一段。
      position:absolute; 表示绝对定位,如果定义了这个属性的元素,其位置将依据浏览器左上角的0点开始计算,并且是浮动正常元素之上的。那么当你需要某个元素定位在浏览器内容区的某个地方就可以用到这个属性。
      于是产生了一个问题:现在大家做的网页大部分是居中的,如果我需要这个元素跟着网页中的某个元素位置,不论屏幕的分辨率是多少它的位置始终是针对页内的某个元素的,靠单纯的absolute是不行的。
      正确的解决方法是:在元素的父级元素定义为position:relative;(这里可以是祖父级,也可以是position:absolute;,多谢谢old9的提出)需要绝对定位的元素设为position:absolute;
      这样再设定top,right,bottom,left的值就可以了,这样其定位的参照标准就是父级的左上角padding的左上侧。
    一.选择符模式
    模式/含义/内容描述
    *
    匹配任意元素。(通用选择器)
    E
    匹配任意元素 E (例如一个类型为 E 的元素)。(类型选择器)
    E F
    匹配元素 E 的任意后代元素 F 。(后代选择器)
    E > F
    匹配元素 E 的任意子元素 F 。(子选择器)
    E:first-child
    当元素 E 是它的父元素中的第一个子元素时,匹配元素 E 。(:first-child 伪类)
    E:link E:visited
    如果 E 是一个目标还没有访问过(:link)或者已经访问过(:visited)的超链接的源锚点时匹配元素 E 。(link 伪类)
    E:active E:hover E:focus
    在确定的用户动作中匹配 E 。(动态伪类)
    E:lang(c)
    如果类型为 E 的元素使用了(人类)语言 c (文档语言确定语言是如何被确定的),则匹配该元素。(:lang() 伪类)
    E F
    如果一个元素 E 直接在元素 F 之前,则匹配元素 F 。(临近选择器)
    E[foo]
    匹配具有”foo”属性集(不考虑它的值)的任意元素 E 。(属性选择器)
    E[foo="warning"]
    匹配其“foo”属性值严格等于“warning”的任意元素 E 。(属性选择器)
    E[foo~="warning"]
    匹配其“foo”属性值为空格分隔的值列表,并且其中一个严格等于“warning”的任意元素 E 。(属性选择器)
    E[lang|="en"]
    匹配其“lang”属性具有以“en”开头(从左边)的值的列表的任意元素 E 。(属性选择器)
    DIV.warning
    仅 HTML。用法同 DIV[class~="warning"]。(类选择器)
    E#myid
    匹配 ID 等于“myid”的任意元素 E 。(ID 选择器)
    我们用下面的例子来解释“父元素”、“子元素”、“父/子”及“相邻”这几个概念。
    <div title="这是一个div">
    <h1>这是是h1的内容</h1>
    <p>这是一个段落p的内容!<strong>这里是strong的内容</strong>这是一个段落p的内容!</p>
    </div>
    从以上代码中,我们可以找出这样的关系:
    h1 和 p 同为 div 的“儿子”,两者分别同 div 形成“父/子”关系。
    h1,p,strong 都是 div 的“子元素”。(三者都包含在 div 之内)
    div 是 h1 和 p 的“父元素”。
    strong 和 p 形成“父/子”关系,strong 的“父元素”是 p 。
    但 strong 和 div 并非“父/子”关系,而是“祖孙”关系,但 strong 依然是 div 的“子(孙)元素”。
    div 是 h1 p strong 三者的“祖先”,三者是 div 的“子(孙)元素”。
    h1 和 p 两者是相邻的。
    继承上面的实例来具体演示一下E F的关系:假如,我们需要将 strong 内的内容二字变为绿色,我们可以有哪些方法呢?
    div strong {color:green;}
    p > strong {color:green;}
    div > strong {color:green;}
    临近选择器和通用选择器:通用选择器以星号“*”表示,可以用于替代任何 tag 。
    实例:
    h2 * { color:green }
    二.选择符分类介绍
    1.通配选择符
    语法:
    * { sRules }
    说明:
    通配选择符。选定文档目录树(DOM)中的所有类型的单一对象。
    假如通配选择符不是单一选择符中的唯一组成,“*”可以省略。
    示例:
    *[lang=fr] { font-size:14px; width:120px; }
    *.div { text-decoration:none; }
    2.类型选择符
    语法:
    E { sRules }
    说明:
    类型选择符。以文档语言对象(Element)类型作为选择符。
    示例:
    td { font-size:14px; width:120px; }
    a { text-decoration:none; }
    伪类可以看做是一种特殊的类选择符,是能被支持CSS的浏览器自动所识别的特殊选择符。它的最大的用处就是可以对链接在不同状态下定义不同的样式效果。

    楼主热帖
    启用邀请码注册,提高发帖质量,建设交流社区
  • TA的每日心情
    慵懒
    2014-5-23 08:25
  • 签到天数: 234 天

    [LV.7]常住居民III

    发表于 2013-2-22 13:48:09 | 显示全部楼层
    学习了。如此好的总结,为何无人回应。
    启用邀请码注册,提高发帖质量,建设交流社区
    您需要登录后才可以回帖 登录 | 注册

    本版积分规则

    快速回复 返回顶部 返回列表