Tag Archives: div

程序人生

让网页同时兼容FireFox和IE

CSS 兼容要点:DOCTYPE 影响 CSS 处理

    FireFox: div 设置 margin-left, margin-right 为 auto 时已经居中, IE 不行。

    FireFox: body 设置 text-align 时, div 需要设置 margin: auto(主要是 margin-left,margin-right) 方可居中。

    FireFox: 设置 padding 后, div 会增加 height 和 width, 但IE不会, 故需要用 !important 多设一个 height 和 width。

    FireFox: 支持 !important, IE 则忽略, 可用 !important 为 FireFoxFF 特别设置样式。

    div 的垂直居中问题: vertical-align:middle; 将行距增加到和整个DIV一样高 line-height:200px; 然后插入文字,就垂直居中了。缺点是要控制内容不要换行。

    cursor: pointer 可以同时在 IE FF 中显示游标手指状,hand 仅 IE 可以。

    FireFox: 链接加边框和背景色,需设置 display: block, 同时设置 float: left 保证不换行。参照 menubar, 给 a 和 menubar 设置高度是为了避免底边显示错位, 若不设 height, 可以在 menubar 中插入一个空格。

    使用XHTML+CSS构架好处不少,但也确实存在一些问题,不论是因为使用不熟练还是思路不清晰,我就先把一些我遇到的问题写在下面,省的大家四处找。

    1.在mozilla firefox和IE中的BOX模型解释不一致导致相差2px解决方法:

    div{margin:30px!important;margin:28px;}

    注意这两个margin的顺序一定不能写反,据说!important这个属性IE不能识别,但别的浏览器可以识别。所以在IE下其实解释成这样:

    div{maring:30px;margin:28px}

    重复定义的话按照最后一个来执行,所以不可以只写margin:XXpx!important;

    2.IE5和IE6的BOX解释不一致IE5下div{width:300px;margin:0 10px 0 10px;}div的宽度会被解释为300px-10px(右填充)-10px(左填充)最终div的宽度为280px,而在IE6和其他浏览器上宽度则 是以300px+10px(右填充)+10px(左填充)=320px来计算的。这时我们可以做如下修改:

    div{width:300px!important;width  /**/:340px;margin:0  10px  0  10px}

    关于这个/**/是什么www.qpsh.com也不太明白,只知道IE5和firefox都支持但IE6不支持,如果有人理解的话,请告诉我一声,谢了!:)

    3.ul标签在Mozilla中默认是有padding值的,而在IE中只有margin有值所以先定义:

    ul{margin:0;padding:0;}

    就能解决大部分问题。

    4.关于脚本,在xhtml1.1中不支持language属性,只需要把代码改为:

    <script  type="text/javascript">

    就可以了。

    5.如果你在BOX容器里使float和text-align的方向设为一致:

    {float:left;text-align:left;margin:0 0 0 200px;}

    我们可做如下修改:

    {float:left;text-align:left;margin:0 0 0 200px;display:inline;}

生活碎片

WEB设计、DIV+CSS入门 (一)

CSS2.0中文手册:
对象模型中文手册:
默认行为中文手册:
样式表滤镜手册:
CSS专用书写工具:

TopStyle Pro v3.11 点击下载

官方网站地址:http://www.bradsoft.com/



此主题相关图片如下:


此主题相关图片如下:


功能专注于CSS设计的辅助工具,功能相当多,附有CSS码检查功能,减少写错的机会。尤其是它的HELP文件中详细的CSS指令介绍,很适于用作参考文件与初次接触CSS的人做为学习使用。最有用的功能为CSS排错检查,可以对各个版本的CSS文件进行标准化排查并对其进行书写格式化!

[PS:最新的TopStyle版本为V3.12英文版,可升级]


此主题相关图片如下:



+========================================================+

CSS是Cascading Style Sheets(层叠样式表)的缩写。是一种对web文档添加样式的简单机制,属于表现层的布局语言。

1.基本语法规范
分析一个典型CSS的语句:

p {COLOR:#FF0000;BACKGROUND:#FFFFFF}


其中”p”我们称为”选择器”(selectors),指明我们要给”p”定义样式;
样式声明写在一对大括号”{}”中;
COLOR和BACKGROUND称为”属性”(property),不同属性之间用分号”;”分隔;
“#FF0000″和”#FFFFFF”是属性的值(value)。
2.颜色值
颜色值可以用RGB值写,例如:color : rgb(255,0,0),也可以用十六进制写,就象上面例子color:#FF0000。如果十六进制值是成对重复的可以简写,效果一样。例如:#FF0000可以写成#F00。但如果不重复就不可以简写,例如#FC1A1B必须写满六位。

3.定义字体
web标准推荐如下字体定义方法:

body { font-family : “Lucida Grande”, Verdana, Lucida, Arial, Helvetica, 宋体,sans-serif; }


字体按照所列出的顺序选用。如果用户的计算机含有Lucida Grande字体,文档将被指定为Lucida Grande。没有的话,就被指定为Verdana字体,如果也没有Verdana,就指定为Lucida字体,依此类推,;
Lucida Grande字体适合Mac OS X;
Verdana字体适合所有的Windows系统;
Lucida适合UNIX用户
“宋体”适合中文简体用户;
如果所列出的字体都不能用,则默认的sans-serif字体能保证调用;
4.群选择器
当几个元素样式属性一样时,可以共同调用一个声明,元素之间用逗号分隔,: p, td, li { font-size : 12px ; }


5.派生选择器
可以使用派生选择器给一个元素里的子元素定义样式,例如这样:

li strong { font-style : italic; font-weight : normal;}

就是给li下面的子元素strong定义一个斜体不加粗的样式。

6.id选择器
用CSS布局主要用层”div”来实现,而div的样式通过”id选择器”来定义。例如我们首先定义一个层



然后在样式表里这样定义:

#menubar {MARGIN: 0px;BACKGROUND: #FEFEFE;COLOR: #666;}


其中”menubar”是你自己定义的id名称。注意在前面加”#”号。

id选择器也同样支持派生,例如:

#menubar p { text-align : right; margin-top : 10px; }


这个方法主要用来定义层和那些比较复杂,有多个派生的元素。

6.类别选择器
在CSS里用一个点开头表示类别选择器定义,例如:

.14px {color : #f60 ;font-size:14px ;}


在页面中,用class=”类别名”的方法调用:

14px大小的字体


这个方法比较简单灵活,可以随时根据页面需要新建和删除。

7.定义链接的样式
CSS中用四个伪类来定义链接的样式,分别是:a:link、a:visited、a:hover和a : active,例如:

a:link{font-weight : bold ;text-decoration : none ;color : #c00 ;}
a:visited {font-weight : bold ;text-decoration : none ;color : #c30 ;}
a:hover {font-weight : bold ;text-decoration : underline ;color : #f60 ;}
a:active {font-weight : bold ;text-decoration : none ;color : #F90 ;}

以上语句分别定义了”链接、已访问过的链接、鼠标停在上方时、点下鼠标时”的样式。注意,必须按以上顺序写,否则显示可能和你预想的不一样。记住它们的顺序是“LVHA”。

呵呵,看了这么多,有点头晕吧,实际上CSS的语法规范还有很多,这里列的只是一些常用的,毕竟我们是循序渐进,不可能一口吃成胖子:)

CSS布局入门

CSS布局与传统表格(table)布局最大的区别在于:原来的定位都是采用表格,通过表格的间距或者用无色透明的GIF图片来控制文布局版块的间距;而现在则采用层(div)来定位,通过层的margin,padding,border等属性来控制版块的间距。

1.定义DIV
分析一个典型的定义div例子:

#sample{ MARGIN: 10px 10px 10px 10px;
PADDING:20px 10px 10px 20px;
BORDER-TOP: #CCC 2px solid;
BORDER-RIGHT: #CCC 2px solid;
BORDER-BOTTOM: #CCC 2px solid;
BORDER-LEFT: #CCC 2px solid;
BACKGROUND: url(images/bg_poem.jpg) #FEFEFE no-repeat right bottom;
COLOR: #666;
TEXT-ALIGN: center;
LINE-HEIGHT: 150%; WIDTH:60%; }
说明如下:

层的名称为sample,在页面中用

就可以调用这个样式。
MARGIN是指层的边框以外留的空白,用于页边距或者与其它层制造一个间距。”10px 10px 10px 10px”分别代表”上右下左”(顺时针方向)四个边距,如果都一样,可以缩写成”MARGIN: 10px;”。如果边距为零,要写成”MARGIN: 0px;”。注意:当值是零时,除了RGB颜色值0%必须跟百分号,其他情况后面可以不跟单位”px”。MARGIN是透明元素,不能定义颜色。
PADDING是指层的边框到层的内容之间的空白。和margin一样,分别指定上右下左边框到内容的距离。如果都一样,可以缩写成”PADDING:0px”。单独指定左边可以写成”PADDING-LEFT: 0px;”。PADDING是透明元素,不能定义颜色。
BORDER是指层的边框,”BORDER-RIGHT: #CCC 2px solid;”是定义层的右边框颜色为”#CCC”,宽度为”2px”,样式为”solid”直线。如果要虚线样式可以用”dotted”。
BACKGROUND是定义层的背景。分2级定义,先定义图片背景,采用”url(../images/bg_logo.gif)”来指定背景图片路径;其次定义背景色”#FEFEFE”。”no-repeat”指背景图片不需要重复,如果需要横向重复用”repeat-x”,纵向重复用”repeat-y”,重复铺满整个背景用”repeat”。后面的”right bottom;”是指背景图片从右下角开始。如果没有背景图片可以只定义背景色BACKGROUND: #FEFEFE

COLOR用于定义字体颜色,上一节已经介绍过。
TEXT-ALIGN用来定义层中的内容排列方式,center居中,left居左,right居右。
LINE-HEIGHT定义行高,150%是指高度为标准高度的150%,也可以写作:LINE-HEIGHT:1.5或者LINE-HEIGHT:1.5em,都是一样的意思。
WIDTH是定义层的宽度,可以采用固定值,例如500px,也可以采