目录
#浮动(float)
CSS 提供了三种传统布局方式(简单说,就是盒子如何进行排列顺序):
- 普通流(标准流)
- 浮动
- 定位
实际过程中三种都要
普通流/标准流/文档流(normal flow)
所谓的标准流: 就是一个网页内标签元素正常从上到下,从左到右排列顺序的意思,比如块级元素会独占一行,行内元素会按顺序依次前后排列
浮动(float)
浮动最早是用来控制图片,以便达到其他元素(特别是文字)实现“环绕”图片的效果
语法: float:right;
浮动最典型的应用:可以让多个块级元素一行内排列显示。
网页布局第一准则:多个块级元素纵向排列找标准流,多个块级元素横向排列找浮动。
什么是浮动
元素的浮动是指设置了浮动属性的元素会脱离标准普通流的控制,移动到其父元素中指定的位置
选择器 { float: 属性值; }
浮动详细内幕特性
浮动首先创建包含块的概念(包裹)。浮动的元素总是找离他最近的父级元素对齐,但是不会超出内边距的范围
先用标准流父元素排列上下位置, 之后内部子元素采取浮动排列左右位置
浮动元素排列位置跟上一个元素(块级)有关系。如果上一个元素有浮动,则A元素顶部会和上一个元素顶部对齐;
A B 浮动
如果上一个元素时标准流,则A元素的顶部会和上一个元素的底部对齐
A不浮动 B浮动
一个盒子里面有多个子盒子,如果其中一个盒子浮动了,其他兄弟也应该浮动,以防止引起问题。
浮动的盒子只会影响浮动盒子后面的标准流,不会影响前面的标准流.
块级元素和行内元素添加浮动之后,具有行内块的特性(可以一行放多个,有宽度和高度,盒子大小由内容决定)
浮动的目的就是为了让多个块级元素在同一行上显示
#版心和布局流程
版心(可视区)是指网页中主体内容所在的区域。一般在浏览器窗口中水平居中显示,常见的宽度值为960px,980px,1000px,1200px等
布局流程
为了提高网页制作效率,布局时通常需要遵守一定的布局流程:
1.确定页面的版心
2.分析页面中的行模块,以及每个行模块中的列模块
3.制作HTML结构
4.CSS初始化,然后运用盒子模型的原理,通过DIV+CSS布局来控制网页的各个模块
一列固定宽度且居中
最为普通,最为常用的结构
两列左窄右宽型
通栏平均分配型
#清除浮动
准确来说,不是清除浮动,而是清除浮动后造成的影响
为什么要清除浮动
很多情况下,父级盒子不方便给高度,考虑到孩子的高度会变。
清除浮动本质
主要为了解决父级元素因为子级浮动引起内部高度为0的问题
清除浮动的方法
其实本质叫做闭合浮动更好一些,清除浮动就是把浮动的盒子圈到里面,让父盒子闭合出口和入口不让他们出来影响其他元素。
基本语法:选择器{clear:属性值;}
一般都直接用 clear:both;
额外标签法
是W3C推荐的做法,通过再浮动元素末尾添加一个空的标签,例如 <div style="clear:both"></div>,或其他标签 br 等也可,添加的标签一定是块级标签
通俗易懂但是添加许多无意义的标签结构化较差
父级添加overflow属性方法
overflow:hidden | auto | scroll; 触发BFC BFC可以清除浮动
代码简洁但无法显示溢出部分
使用after伪元素清除浮动
:after 方式为空元素的升级版,不用再单独加标签
.clearfix:after {
content: ".";
display: block;
height: 0;
clear: both;
visibility: hidden;
}
.clearfix { /* IE6、7 专有 */
*zoom: 1; /* 星号代表ie6、7能识别的特殊符号,带由这个符号的属性只有ie6 7才执行
zoom 就是ie6 7 清除浮动的方法*/
}
content"."里边尽量跟一个小点或者其他,尽量不要为空,否则在firebox7.0前的版本会有生成空格
例如:网易、淘宝、百度
使用before和after双伪元素清除浮动
.clearfix:before,.clearfix:after {
content:"";
display:table; /*触发BFC 防止外边距合并*/
}
.clearfix:after {
clear:both;
}
.clearfix {
*zoom:1;
}
例如:小米、腾讯
#Photoshop图像处理专家
Photoshop基本使用
PS界面组成
基本操作
移动工具V
自由变形
图层操作
图层上下位置移动
图层合并
图层透明度
矩形选区工具M
颜色填充
套索工具L
磁性套索L
魔棒工具
选区布尔运算
钢笔工具P
Photoshop切图
切片工具
切图插件
#定位
为什么要用定位
浮动可以让多个块级盒子一行没有缝隙排列显示, 经常用于横向排列盒子。定位则是可以让盒子自由的在某个盒子内移动位置或者固定屏幕中某个位置,并且可以压住其他盒子。
元素的定位属性
元素的定位属性主要包括定位模式和边偏移两部分
边偏移:定位的盒子移动到最终位置
定位模式:选择器{position:属性值;}
静态定位 static
静态定位是所有元素的默认定位方式,当position属性的取值为static时,可以将元素定位于静态位置。所谓静态位置就是各个元素在HTML文档流中默认的位置
在静态定位状态下,无法通过边偏移属性(top、bottom、left或right)来改变元素的位置
一般用来清除定位
相对定位 relative (自恋型)
元素在移动位置的时候,是相对于它自己原来的位置来说
相对位置的特点:它是相对于自己原来的位置来移动的(移动位置的时候参照点是自己原来的位置 );原来在标准流的位置继续占有,后面的盒子仍然以标准流的方式对待它。相对定位不脱标。
如果说浮动的主要目的是让多个块级元素一行显示,那定位的主要价值就是移动位置,让盒子到我们想到的位置上去
绝对定位 absolute(拼爹型)
元素在移动位置的时候,是相对于它祖先元素来说
绝对位置的特点:
完全脱标—完全不占位置;
父元素没有定位,则以浏览器为准定位;
父元素有定位,元素将依据最近的已经定位(绝对、固定或相对定位)的父元素(祖先)进行定位。
子绝父相
子级是绝对定位(不脱标),父级要用相对定位(占位置)
绝对定位的盒子水平/垂直居中
普通盒子用 margin:auto auto; 即可
定位的盒子也可以水平或者垂直居中,算法如下:首先left 50%;然后走自己外边距负的一半值
固定定位 fixed(认死理型)
固定定位是绝对定位的一种特殊形式(类似于正方形是特殊的矩形这个道理),元素固定于浏览器可视区的位置
固定定位特点
固定定位与父级元素没关系,只认浏览器的可视窗口 —— 浏览器可视窗口 + 边偏移属性
来设置元素的位置
固定定位完全脱标,不占有位置,不随着滚动条滚动。
固定定位的盒子一定要写宽和高,除非有内容撑开不用写
叠放次序(z-index)
在CSS中,要想调整重叠定位元素的堆叠顺序,可以对定位元素应用z-index层叠等级属性,其取值可以为正整数、负整数和0。(比如 z-index:2)
- z-index的默认属性是0,取值越大,定位元素在层叠元素中越居上
- 如果取值相同,则根据书写顺序,后来居上
- 后面数字一定不能加单位
- 只有相对定位、绝对定位、固定定位有此属性,其余标准流、浮动、静态定位都无此属性,也不可以指定此属性。
#四种定位总结
#定位模式转换
浮动的盒子有模式转换的情况,转换为行内块。
跟浮动一样,元素添加了绝对定位和固定定位之后,可以不用转换模式,直接给高度和宽度就可以
#元素的显示与隐藏
display 显示
display:none; 隐藏元素,不是删除,元素一直在页面中
display:block; 除了转换为块级元素之外,同时还有显示元素的意思。
特点: display 隐藏元素后,不再占有原来的位置
visibility 可见性
visibility:visible ; 元素可视
visibility:hidden; 元素隐藏
特点:visibility 隐藏元素后,继续占有原来的位置。
如果隐藏元素想要原来位置, 就用 visibility:hidden;
如果隐藏元素不想要原来位置, 就用 display:none ;(用的多)
overflow 溢出
overflow 属性指定了如果内容溢出一个元素的框(超过其指定高度及宽度) 时,会发生什么。