CSS点滴整理

scrollHeight与scrollWidth

Chrome下body的这两个属性与其他元素有差异。

当页面的height <= body.clientHeight时,一切正常,body.clientHeight == body.scrollHeight

但当页面的height > body.clientHeight时,body.scrollHeight不是body的滚动高度,而是整个页面的高度

而且在IE下,如果没有设置body的宽高样式,那么scrollHeight等于body内部元素所占高度。

IE6下 <select>无法被其他元素覆盖(通过z-index)

font-size:13px在IE6下无效,但font-size:12px等等却可以

解决“高度塌陷”的方案

<div style="border:solid 1px black;width:400px;display:inline-block;">

  <div style="float:left;background:lightgreen;width:30%;">Sgfasd fashdsss dssssss ghfasdfsdfSSSDF</div>

  <div style="float:left;background:lightgrey;width:20%;">SSS df  fdsdf DF</div>

</div>

 重点是蓝色的部分

文字截断(长度超出部分用省略号表示)

word-break:keep-all;/* 不换行 */

white-space:nowrap;/* 不换行 */

overflow:hidden;/* 内容超出宽度时隐藏超出部分的内容 */

text-overflow:ellipsis;/*当对象内文本溢出时显示省略标记(...);*/

如果是table的话还要加上下面的
table-layout:fixed;

 

竖直居中(容器内元素)

方案1  line-height:10px;

方案2  padding-top:5px;padding-bottom:5px;

 

 IE各版本间CSS差异

IE6不支持子元素选择器和相邻兄弟选择器 例 #main > div{} #main + div{}

IE6不支持属性选择器 例 a[href]{}

IE6不支持伪类

IE6不支持Min-Height ,Min-Width,Max-Height,Max-Width  (可变的宽度和高度极限值)

IE6不支持 display:fixed  绝对定位,且不随页面移动 (IE6+支持)

IE6,7不支持裁剪 clip:rect


浮动元素居中

父元素和子元素同时左浮动,然后父元素相对左移动50%,再然后子元素相对右移动50%,或者子元素相对左移动-50%也就可以了。

<!DOCTYPE html>

<html>

<head>

    <style type="text/css">

        .p{

            position:relative;

            left:50%;

            float:left;

        }

        .c{

            position:relative;

            float:left;

            right:50%;

        }

    </style>

</head>

<body>

    <div class="p">

        <h1 class="c">Test Float Element Center</h1>

    </div>

</body>

</html>

 CSS Hack

添加针对所有IE的Style:

<!--[if IE]>

<!--

   TODO

   这类Hack不仅对CSS生效,

   对写在判断语句里面的所有代码都会生效

-->

<![endif]-->

针对IE各个版本的Hack

div{

    background:blue;

    background:blue \9;/*All IE*/

    _background:blue;/*IE6*/

    +background:blue;/*IE7*/

    *background:blue;/*IE6,7*/

    background:blue \0;/*IE8*/

    background:blue \9\0;/*IE9*/

}

 


利用ul和li实现元素的按序布局(例如导航

ul

{

    list-style: none;

    margin-left:5px;

    width: 98%;

    overflow: hidden;

}

li

{

    float: left;

    width:100px;

    margin-right: -1px;

    margin-top:2px;

    height: 20px;

    line-height: 20px;

    position: relative;

    overflow: hidden;

    border: 1px solid #B3B3B3;

    padding-left:2px;

    display:inline-block;

}

 在CSS文件中引用其他CSS文件.可用于简单的CSS文件整理

main.css

@import url("ligerui-common.css");

@import url("ligerui-dialog.css");

@import url("ligerui-form.css");

 给定一个元素,如果相邻的两个border颜色不相同时,效果只是两条垂直的不同色的线而已;但如果border-width足够大的话,将会有意想不到的效果,如下:

 CSS点滴整理

 如果上下(左右)border的宽度等于height(width)的话,就会出现下面的效果:

 CSS点滴整理

 再进一步  如果让上下border的颜色变成透明的,则成了一个箭头!而且还没用图片!

 CSS点滴整理


textarea 的resize问题

在Chrome下,textarea是可以通过拖动右下角的三角来调整大小。如下图

但有些时候我们不希望这个输入框可以被用户随意摆弄
解决方法:
text{resize:none;}


让文字包围图片

  • 将<img>的属性align设置成"left"或"right"
  • 给<img>添加样式float:left;或float:right;

 

 

你可能感兴趣的:(css)