定位概述
默认的文档流的布局的方式决定了元素的位置就是静态的定位方式。默认值:Static。
可以通过position CSS属性来改变元素的定位的方式。
1相对定位:relative
相对于原来的位置进行偏移。
2绝对定位:absolute
根据父容器(必须是非static的定位的容器)进行位置定位。
一般原则:子绝父相
3固定定位:fixed
固定在浏览器的某个位置,浏览器scroll时不会发生变化。
Zindex
Zindex可以改变元素层叠的位置。
Zindex越大,越靠近用户。
页面zindex规划案例:
一般的zindex都会在100区间内。
如果是页面比较顶部的用200区间的
如果是广告,那么需要最顶部,则是300区间
三列自适应布局
前端学院公开课的网站: http://open.itcast.cn/front/
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>26三列自适应布局</title>
<style>
* { padding: 0; margin: 0; }
.sub-nav, .aside {
width: 200px;
background-color: teal;
height: 300px;
}
.main {
margin-left: 203px;
margin-right: 203px;
height: 300px;
background-color: yellowgreen;
}
.sub-nav {
float: left;
}
.aside {
float: right;
}
</style>
</head>
<body>
<div class="sub-nav">sub-nav</div>
<div class="aside">aside</div>
<div class="main">main</div>
</body>
</html>
CSS设置背景
概述
background-attachment 设置背景图像是否固定或者随着页面的其余部分滚动。
background-color 设置元素的背景颜色。
background-image 设置元素的背景图像。
background-position 设置背景图像的开始位置。
background-repeat 设置是否及如何重复背景图像。
background 合写:在一个声明中设置所有的背景属性。
background-image设置盒子的背景图片
background-image: url(bgimage.gif);
注意url指向一个相对路径,url后面紧跟的是一对括号,括号内的是路径,路径可以用引号,也可以省略,建议省略。
背景图片会盖住背景颜色。
也就是说:背景图片的优先级要高于背景色
background-attachment
background-attachment属性设置背景图像是
scroll: 默认值。背景图像会随着页面其余部分的滚动而移动。否固定或者随着页面的其余部分滚动。
fixed:固定显示,相对于body固定。一般只用于body的背景设置。
background-position
设置背景图像的起始位置。
background-repeat
background-repeat 属性定义了图像的平铺模式。
属性值:no-repeat repeat-x repeat-y repeat
background合写
background合写的顺序: 背景颜色、背景图地址、平铺设置、背景图滚动、背景图位置。
建议:背景都以合写的形式存在,CSS的字节更少。
CSS高级内容补充
规避脱标
尽量避免使用float和定位脱离标准文档流。
写css的最好优先: 标准流→flat→定位。
HTML标签的嵌套规则
n行内禁止嵌套 块级标签
ndt、h1-h6、p等标签禁止嵌套其他块级标签,只能嵌套文字类型的行内标签。
n超级链接标签可以嵌套图片等标签,但是不可以嵌套input标签
CSS挤兑盒子
²CSS可以通过padding和margin等属性吧盒子挤开,另外配合父盒子的overflow的属性对子盒子进行切割操作。
²Text-indent也可以挤兑文字
CSS精灵技术
网页中的小图片特别多的时候,浏览器会跟后天交互很多次,太浪费带宽和请求的连接。如果把多个小图合并成一张图进行交互,能大量减少浏览器跟后台服务器的交互次数,也能极大提高浏览器的效率。
CSS精灵图可以把多张小图合并到一张大图上,然后使用背景定位技术实现让盒子背景显示大背景图的一小部分,这就是精灵图的原理。
消除inline-block中的空隙
行内块之间会有缝隙,去掉的方法
1. 去除空格,把代码放在一行上。
2. 使用margin负值。
3.给父级添加font-size:0;
4.使用letter-spacing或者 word-spacing
5、使用float的方式
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>消除行内块的空隙</title>
<style>
* { margin: 0; padding: 0; }
div span {
display: inline-block;
width: 100px;
height: 100px;
background-color: #ccc;
border: 1px solid #000;
font-size: 14px;
}
/*消除inline块之间的空隙*/
/*第一种方法: font-size=0方法*/
/*div {
font-size: 0;
}*/
/*第二种方法: 使用html注释消除空格方法 或者将行内块元素放到一行显示*/
/*第三种办法:可以使用float*/
/*第四种方法: 可以使用letter-space 和 word-space调整*/
div {
letter-spacing: -2px;
}
</style>
</head>
<body>
<div>
<span>1</span>
<span>2</span><!--
--><span>3</span>
<span>4</span>
</div>
</body>
</html>