首页 > 代码库 > CSS读书笔记(1)
CSS读书笔记(1)
(1)CSS选择器优先权选择。
优先权从大到小的选择如下:
- 标有!important关键字声明的属性
- HTML中的CSS样式属性 <div style="color:red"></div>
- 作者编写的CSS文件 <link href=http://www.mamicode.com/‘xx.css‘>
- 用户浏览网页在浏览器中设置的样式
- 浏览器默认的样式
对于ID选择器.类选择器等,其优先级从大到小分别是:
- 直接在标签中写入样式<div style="color:red"></div> 优先积分1000
- ID选择器 优先积分100
- 类选择器 优先积分 10
- 标签选择器 div{color:blue;} 优先积分1
举个例子,对于
<div> <p class="hi">hello world</p> </div>
在CSS中如果有 div.hi{color:red;};其优先级是1+10=11.
(2)页面布局——两列自适应高度和两列等高布局
先布置页面结构
<div id="header"> 头部信息 </div> <div id="container"> <div class="mainBox"> <p> 主要内容区域</p> <p> 主要内容区域</p> <p> 主要内容区域</p> <p> 主要内容区域</p> <p> 主要内容区域</p> <p> 主要内容区域</p> <p> 主要内容区域</p> <p> 主要内容区域</p> </div> <div class="sideBox"> 侧边栏 <p> 主要内容区域</p> <p> 主要内容区域</p> <p> 主要内容区域</p> </div> </div> <div id="footer"> 底部信息 </div>
container容器中实现两列布局几个要点:
- 通过float实现mainBox和sideBox左右两列的效果
- container、sideBox/mainBox不设置高度
- 如果container设置了margin属性。底部的footer不会和container分开,通过在footer中清除浮动也没效果。通过在container后面加入一个看不见的不可见的块级元素并且清除浮动可以实现
*{
margin:0;
padding:0;
}/* 设置页面中所有元素的内外补丁为0*/
#header,#footer{
height:30px;
background-color:#ccc;
}
#container{
margin:10px 0;
}/*页面主要内容区域*/
.mainBox{
float:left;
width:70%;/*利用百分比定义左右两列占container盒子的宽度*/
color:#fff;
background-color:#333;
}
.sideBox{
float:right;
width:30%;
background-color:#666;
}
#container:after{
display:block;
visibility:hidden;
font-size:0;
line-height:0;
clear:both;
content:"";
}/*在container后加入不可见的块级元素 使container和footer分开*/
#footer{
clear:both;
}/*兼容低版本IE 防止底部浮动到container右边*/
两个等高布局可以在两列自适应布局的基础上改进。主要有4种方法:背景模拟、负边距、边框模拟、javascript方式。
负边距方式:主要是在左右浮动的mainBox和sideBox加入非常大的(比如9999px)padding-bottom和很大的负值的margin-bottom,然后在其父元素中加入overflow:hidden;
#container{
width:960px;
margin:10px 0;
overflow:hidden;
}/*页面主要内容区域*/
.mainBox,.sideBox{
margin-bottom:-9999px;
padding-bottom:9999px;
}
Javascript方式:这个方式简单明了;不需要设置内容区域的高度,利用clientHeight获取区域的高度,对比左右区域高度,然后把高度大的高度赋值给另一个区域。
<script> var mh=document.getElementById("mainBox");//这里需要对相应区域设置ID,也可以通过getElementByClassName(); var sh=document.getElementById("sideBox"); if(mh.clientHeight<sh.clientHeight){ mh.style.height=sh.clientHeight+"px"; }else{ sh.style.height=mh.clientHeight+"px"; } </script>
JavaScript真神奇!
CSS读书笔记(1)
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。