CSS的一些记录

1.清除浮动(待补充,就是刚才看到了先记录一下)

  浮动问题:一般来说,在文档流中,子div的高度会撑开父div。但是当给子div设置了float之后它就不会撑开父div了。此时父div的height会是0,这将导致一些问题。

  解决办法:(1)overflow:hidden;或者overflow:auto;

       (2)在最后浮动的div那里添加一个<div style="clear:both"></div>来清除浮动

       (3)在父div使用伪类元素:after{content:"";display:block;clear:both;},这其实与(2)是一个道理,不过是用了伪类元素,省的自己写html了。

更具体的请看这篇的博文:http://www.cnblogs.com/ForEvErNoME/p/3383539.html

2.父子div嵌套时的margin问题

  问题描述:父子div嵌套的时候,子div的margin-top不会撑开父div的height。而是会将这个margin-top作用于父div,如果还有祖父div,它会一直向上传递,作用于最高层的div。甚至是body元素。

  代码如下:

<body>
  <div class="outer">     <div class="son">     </div>   </div> </body>
body{
  margin:0;
  padding:0;
}
.outer{
  height:auto;
  background-color:black;
  width:300px;                
}
.son{
  height:20px;
  width:100%;
  margin-top:20px;
  background-color:red;
}

  盒模型数据如下:

html的盒模型:元素高度40,正确

body的盒模型:元素高度20,没有margin 按理说应该会与html元素的上边沿平齐。但实际效果↓

与html上边缘有20px的距离。

 

父div的盒模型,高度没有被撑开。很直观的错误。

子div的盒模型,高度20,margin-top:20px。

 

解决办法:现在是给父div加了一个overflow:hidden的样式。

 

3.关于阴影box-shadow的使用

 css3中有一个box-shadow属性,可以用来制作阴影,制造光线照射时的真实感。

  格式:box-shadow: h-shadow v-shadow [blur] [spread] [color] [inset];

  取值:h-shadow是阴影的水平偏移量,v-shadow是垂直偏移量,坐标系是html的普通坐标系。剩下的都是可选参数。

     blur:模糊半径,0代表不模糊,值越大越模糊。

       spread:阴影半径,0代表不扩展,负数向小扩展,整数向大扩展。这主要用来制造一种距离感。与光源的距离。  

       color:阴影的颜色,如果不指定的话会默认取浏览器所规定的默认颜色。

     inset:这是唯一的取值”inset“,如果不写的话默认是“外阴影”,写上的话会变成“内阴影“。

  兼容性:用的时候记得把各内核的前缀都加上,或者使用自动添加前缀的工具。

  具体效果自己多尝试。

  另外谷歌的material设计概念中”真实纸片“的理念,采用了很多这个阴影效果来表达纸片之间的距离,层级概念。

  ps.例如要将阴影放到左下角,则 box-shadow:3px 3px 6px -4px #000;   模糊3px,阴影比div小4px,然后向右、向下各移动3px。

 4.关于background的记录。

  background用于指定背景图片。格式为  background:color imageUrl offset-x offset-y attachment repeat;

  这些字段并非必填,不写就会选用默认的值。

  推荐将属性设置写在一行,因为有些字段值是css3规定的,浏览器不兼容需要添加前缀,写一起就不用添加前缀了。比如设置offset的属性:background-position。

  背景图size可以另外用background-size:width height 来设置。有一方用了auto的话会根据另一个值进行等比例缩放,如果都指定的话会伸缩。

  ps.还有一点需要注意的是在IE6/7中background是不包括border的。所以要注意兼容性。

5.关于float的一些问题。

  浮动本质上还是基于文档流定位的。只是从常规文档流里抽出,放到了浮动文档流,注意此时这个块状元素仍然是块状元素。左浮动跟右浮动会时右浮动换行,如果左右对齐时要注意,右浮动前面有非右浮动元素也会让右浮动换行。

posted @ 2016-03-07 18:32  在修行  阅读(220)  评论(0编辑  收藏  举报