常用CSS书写技巧

2016-02-19 17:24 1 1 收藏

下面图老师小编跟大家分享常用CSS书写技巧,一起来学习下过程究竟如何进行吧!喜欢就赶紧收藏起来哦~

【 tulaoshi.com - Web开发 】

  /*******************************************************************************/

  不同的浏览器,比如Internet Explorer 6,Internet Explorer 7,Mozilla Firefox等,对CSS的解析认识不一样,因此会导致生成的页面效果不一样,得不到我们所需要的页面效果。这个时候我们就需要针对不同的浏览器去写不同的CSS,让它能够同时兼容不同的浏览器,能在不同的浏览器中也能得到我们想要的页面效果。这个针对不同的浏览器写不同的CSS code的过程,就叫CSS hack,也叫写CSS hack。

  由于不同的浏览器对CSS的支持及解析结果不一样,还由于CSS中的优先级的关系。我们就可以根据这个来针对不同的浏览器来写不同的CSS。

  比如 IE6能识别下划线"_"和星号" * ",IE7能识别星号" * ",但不能识别下划线"_",而firefox两个都不能认识。等等

  书写顺序,一般是将识别能力强的浏览器的CSS写在后面。下面列举常用的CSS hack方法

  1:!important

  !important作用是提高指定样式规则的应用优先权。

  IE7以及所有标准浏览器能识别!important

  区别IE6与IE7与其他浏览器

.browserTest
{
    border:20px solid #60A179 !important;
    border:20px solid #00F;
}

  在Mozilla中或者IE7浏览时候,能够理解!important的优先级,因此显示#60A179的颜色:

  在IE6中浏览时候,不能够理解!important的优先级,因此显示#00F的颜色:

  2:*

(本文来源于图老师网站,更多请访问https://www.tulaoshi.com/webkaifa/)

  IE都能识别*;标准浏览器(如火狐)不能识别*

  区别IE6与火狐

.browserTest
{
    border:20px solid #60A179;
    *border:20px solid #00F;
}

  区别IE7与火狐

.browserTest
{
   border:20px solid #60A179;
   *border:20px solid #00F;
}

  区别IE7,IE6与火狐

.browserTest
{
   border:20px solid #60A179;
   *border:20px solid #00F !important;
   *border:20px solid ###;
}

  3:_

  IE6支持下划线,IE7和firefox均不支持下划线

  区别IE7,IE6与火狐

.browserTest
{
   border:20px solid #60A179;
   *border:20px solid #00F;
   _border:20px solid ###;
}

  /*不管是什么方法,书写的顺序都是firefox的写在前面,IE7的写在中间,IE6的写在最后面*/

  4:*+html 与 *html

  *+html 与 *html 是IE特有的标签, firefox 暂不支持.而*+html 又为 IE7特有标签

  .browserTest { width: 120px; }      /* FireFox fixed */

  *html .browserTest { width: 80px;}  /* ie6 fixed */

  *+html .browserTest { width: 60px;} /* ie7 fixed */

  注意:

  *+html 对IE7的HACK 必须保证HTML顶部有如下声明:

  !DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"

  /*****************************************************************************/

  /*****************************************************************************/

  以下是一些常用的CSS兼容技巧

  1)火狐下给div设置padding后会导致width和height 增加, 但IE不会.(可用!important解决)

  2)垂直居中,将 line-height设置为当前div相同的高度, 再通过vertical-align: middle;( 注意内容不要换行)

  3)水平居中,margin:0 auto;(当然不是万能)

  4)若需给a标签内内容加上样式, 需要设置 display: block;(常见于导航标签)

  5)浮动IE产生的双倍距离

  在IE下,当一个div设置了float后,然后给他设置margin,就会出现加倍的margin,解决的办法是给div设置display:inline。

  div id=”float”/div

  相应的css为

#float
{
   float:left;
   margin:5px;/*IE下理解为10px*/
   display:inline;/*IE下再理解为5px*/
}

  Block元素的特点是:总是在新行上开始,高度,宽度,行高,边距都可以控制(块元素);Inline元素的特点是:和其他元素在同一行上,...不可控制(内嵌元素);

(本文来源于图老师网站,更多请访问https://www.tulaoshi.com/webkaifa/)

  6)IE和FF对盒模型的解释区别

  #browserTest{ width: 650px !important;width: 648px;padding-left:2px;background:#fff; } 

  browserTest显示的宽度是650px;

  IE Box的总宽度是:width+padding+border+margin宽度总和;

  FF Box的总宽度就是:width的宽度,padding+border+margin的宽度在含在width内。

  如果有BOX{WIDTH:"300"; PADDING:"5PX";}

  则BOX在IE的宽度应该为:310

  而在FF的宽度则是300

  所以在BOX有填充的情况下应该这样使用

  BOX{WIDTH:"300" !IMPORTANT; WIDTH:"290";}

  7)ul标签在FF下面默认有list-style和padding, 最好事先声明, 以避免不必要的麻烦;(常见于导航标签和内容列表)

  8)作为外部wrapper的div不要定死高度, 最好还加上 overflow: hidden;以达到高度自适应;

  9)页面的最小宽度

  min-width是个非常方便的CSS命令,它可以指定元素最小也不能小于某个宽度,这样就能保证排版一直正确。但IE不认得这个,

  而它实际上把width当做最小宽度来使。为了让这一命令在IE上也能用,可以把一个div 放到 body 标签下,然后为div指定一个类:

  然后CSS这样设计:

  #container{ min-width: 600px; width:expression(document.body.clientWidth 600? "600px": "auto" );}

  第一个min-width是正常的;但第2行的width使用了Javascript,这只有IE才认得,这也会让你的HTML文档不太正规。它实际上通过Javascript的判断来实现最小宽度。

  10:万能float闭合

  将以下代码加入Global CSS 中,给需要闭合的div加上

style
/* Clear Fix */
.clearfix:after
{
   content:".";
   display:block;
   height:0;
   clear:both;
   visibility:hidden;
}
*html .clearfix{
   height:1%;
}
*+html .clearfix{
   height:1%;
}
.clearfix
{
   display:inline-block;
}
/* Hide from IE Mac */
.clearfix {display:block;}
/* End hide from IE Mac */
/* end of clearfix */
/style
/**********************************************/
div id="wrap"
   div class="column_left"
     h1Float left/h1
   /div
   div class="column_right"
     h1Float right/h1
   /div
/div
#wrap{ border:6px #ccc solid; overflow:auto; _height:1%;}
.column_left{ float:left; width:20%; padding:10px;}
.column_right{ float:right; width:75%; padding:10px; border-left:6px #eee solid;}

来源:https://www.tulaoshi.com/n/20160219/1615151.html

延伸阅读
标签: Web开发
CSS样式表常用小技巧 · ul 标签在 Mozilla 中默认是有 padding 值的,而在 IE 中只有 margin 有值。 · 同一个的 class 选择符可以在一个文档中重复出现,而 id 选择符却只能出现一次;对一个标签同时使用 class和 id 进行 CSS 定义,如果定义有重复,id 选择符做的定义有效。 · 初学可能会碰到这样一个情况,同样一个标签的属性在 IE ...
标签: Web开发
    根据一些CSS写作经验,如何提高渲染效率及所占用消耗的资源,我们来浅谈一下CSS的渲染效率,书写高效的CSS。     1、十六进制的颜色值对位数与大小写     编写十六进制颜色值时你可能会用小写字母或省略成3位数,关于这写法没找到确实的数据证明对浏览器的渲染效率是否有影响,但十六进制...
标签: Web开发
CSS用来定义网站的用户界面,并实现页面展现与内容的分离。CSS在几乎所有的网站都会用到,下面让我们花些精力来确保你的CSS书写的是否标准、合理。这些提示对CSS初学者同样会有很大的帮助。 样式表索引 样式表头部索引定义可以帮助你和其它人弄清楚该样式表文件的相关信息,它一般是一段格式化的CSS注释文本。 给出该css文件作者的相关信...
标签: Web开发
css书写顺序,据网上说这个是Mozilla建议的 显示属性 display list-style position float clear 自身属性 width height margin padding border background 文本属性 color font text-decoration text-align vertical-align white-space other textcontent
标签: Web开发
根据一些CSS写作经验,如何提高渲染效率及所占用消耗的资源,我们来浅谈一下CSS的渲染效率,书写高效的CSS。 1、十六进制的颜色值对位数与大小写 编写十六进制颜色值时你可能会用小写字母或省略成3位数,关于这写法没找到确实的数据证明对浏览器的渲染效率是否有影响,但十六进制的颜色值默认标准是大写及6位数标注。在未知情况下不希望冒险...

经验教程

796

收藏

27
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部