网站建设的一般流程是怎样的,深圳外贸网站建设服务哪家好,南京响应式网站建设,如何做一名优秀的网站管理者css css概述#xff1a; css全称Cascading Style Sheets #xff1a;层叠样式表#xff0c;用于控制网页的样式和布局。 css的四种引入方式 1.行内式 行内式是在标记的style属性中设定CSS样式。这种方式没有体现出CSS的优势#xff0c;不推荐使用。 bodyp styl… css css概述 css全称Cascading Style Sheets 层叠样式表用于控制网页的样式和布局。 css的四种引入方式 1.行内式 行内式是在标记的style属性中设定CSS样式。这种方式没有体现出CSS的优势不推荐使用。 bodyp stylebackground-color: chartreusehello laiying/p
/body2.嵌入式 嵌入式是将CSS样式集中写在网页的head/head标签对的style/style标签对中 1 !DOCTYPE html2 html langen3 head4 meta charsetUTF-85 titleTitle/title6 style7 p{8 background-color: gold;9 }
10 /style
11 /head
12 body
13 phello world/p
14 !--p stylebackground-color: chartreusehello laiying/p--
15 /body
16 /html 3.链接式 将一个.css文件引入到HTML文件中工作中常用。 4.导入式 将一个独立的.css文件引入HTML文件中导入式使用CSS规则引入外部CSS文件style标记也是写在head标记中使用的语法如下 注意 导入式会在整个网页装载完后再装载CSS文件因此这就导致了一个问题如果网页比较大则会儿出现先显示无样式的页面闪烁一下之后再出现网页的样式。这是导入式固有的一个缺陷。使用链接式时与导入式不同的是它会以网页文件主体装载前装载CSS文件因此显示出来的网页从一开始就是带样式的效果的它不会象导入式那样先显示无样式的网页然后再显示有样式的网页这是链接式的优点。 二.css选择器seletcor 1.基础选择器 1 通用元素选择器匹配任何元素 * { margin:0; padding:0; }
2
3 E 标签选择器匹配所有使用E标签的元素 p { color:green; }
4
5 .info和E.info: class选择器匹配所有class属性中包含info的元素 .info { background:#ff0; } p.info { background:blue; }
6
7 #info和E#info id选择器匹配所有id属性等于footer的元素 #info { background:#ff0; } p#info { background:#ff0; } 2.组合选择器 1 E,F 多元素选择器同时匹配所有E元素或F元素E和F之间用逗号分隔 div,p { color:#f00; }
2
3 E F 后代元素选择器匹配所有属于E元素后代的F元素E和F之间用空格分隔 li a { font-weight:bold;
4 E F 子元素选择器匹配所有E元素的子元素F div p { color:#f00; }
5
6 E F 毗邻元素选择器匹配所有紧随E元素之后的同级元素F div p { color:#f00; } 1 !DOCTYPE html2 html langen3 head4 meta charsetUTF-85 titleTitle/title6 style7 8 .div1p{9 background-color: aqua;
10 color: deeppink;
11 }
12
13 .main2div{
14 background-color: blueviolet;
15 color: chartreuse;
16 }
17 /style
18 /head
19 body
20
21 div classdiv1hello1
22 div classdiv2hello2
23 divhello4/div
24 phello5/p
25 /div
26 phello3/p
27 /div
28 phello6/p
29
30 hr
31
32 div classmain21
33 div2
34 div
35 /div
36 /div
37 div
38 /div
39 /div
40 /body
41 /html View Code 注意嵌套规则 块级元素可以包含内联元素或某些块级元素但内联元素不能包含块级元素它只能包含其它内联元素。有几个特殊的块级元素只能包含内联元素不能包含块级元素。如h1,h2,h3,h4,h5,h6,p,dtli内可以包含div块级元素与块级元素并列、内联元素与内联元素并列。 3.属性选择器 1 E[att] 匹配所有具有att属性的E元素不考虑它的值。注意E在此处可以省略比如“[cheacked]”。以下同。 p[title] { color:#f00; }2 3 4 E[attval] 匹配所有att属性等于“val”的E元素 div[class”error”] { color:#f00; }5 6 7 E[att~val] 匹配所有att属性具有多个空格分隔的值、其中一个值等于“val”的E元素 td[class~”name”] { color:#f00; }8 9 E[attr^val] 匹配属性值以指定值开头的每个元素 div[class^test]{background:#ffff00;}
10
11 E[attr$val] 匹配属性值以指定值结尾的每个元素 div[class$test]{background:#ffff00;}
12
13 E[attr*val] 匹配属性值中包含指定值的每个元素 div[class*test]{background:#ffff00;} 4.伪类 CSS伪类是用来给选择器添加一些特殊效果。 anchor伪类专用于控制链接的显示效果 1 a:link没有接触过的链接,用于定义了链接的常规状态。2 3 a:hover鼠标放在链接上的状态,用于产生视觉效果。4 5 a:visited访问过的链接,用于阅读文章能清楚的判断已经访问过的链接。6 7 a:active在链接上按下鼠标时的状态,用于表现鼠标按下时的链接状态。8 9 伪类选择器 : 伪类指的是标签的不同状态:
10
11 a 点过状态 没有点过的状态 鼠标悬浮状态 激活状态
12
13 a:link {color: #FF0000} /* 未访问的链接 */
14
15 a:visited {color: #00FF00} /* 已访问的链接 */
16
17 a:hover {color: #FF00FF} /* 鼠标移动到链接上 */
18
19 a:active {color: #0000FF} /* 选定的链接 */ 格式: 标签:伪类名称{ css代码; } 1 style typetext/css2 a:link{3 color: red;4 }5 a:visited {6 color: blue;7 }8 a:hover {9 color: green;
10 }
11 a:active {
12 color: yellow;
13 }
14 /style
15 /head
16 body
17 a hrefhttps://www.baidu.com我是超链接/a
18 /body
19 /html before after伪类 :before p:before 在每个p元素之前插入内容
:after p:after 在每个p元素之后插入内容p:before 在每个 p 元素的内容之前插入内容 p:before{content:hello;color:red}p:after 在每个 p 元素的内容之前插入内容 p:after{ content:hellocolor:red} 1 !DOCTYPE html2 html langen3 head4 meta charsetUTF-85 titleTitle/title6 style7 .hello:after{8 content: python;9 color: coral;
10 }
11 .taobao:before{
12 content: 欢迎登陆淘宝;
13 color: red;
14 }
15
16 /style
17 /head
18 body
19
20 p classhellohello workd /p
21 p classtaobaowww.taobao.com/p
22 /body
23 /html 5.css优先级和继承 CSS优先级:即是指CSS样式在浏览器中被解析的先后顺序。 1 样式表中的特殊性描述了不同规则的相对权重优先级如下又高到低
2 内联样式表
3 id属性
4 class类属性
5 html标签 继承
6 如果优先级相同后设置的会覆盖前面设置的 CSS的继承性: 继承是CSS的一个主要特征它是依赖于祖先-后代的关系的。继承是一种机制它允许样式不仅可以应用于某个特定的元素还可以应用于它的后代。例如一个BODY定义了的颜色值也会应用到段落的文本中。 1 body{color:red;}
2 phelloyuan/p 这段文字都继承了由body {color:red;}样式定义的颜色。然而CSS继承性的权重是非常低的是比普通元素的权重还要低的0。 1 p{color:green} 发现只需要给加个颜色值就能覆盖掉它继承的样式颜色。由此可见任何显示申明的规则都可以覆盖其继承样式。 此外继承是CSS重要的一部分我们甚至不用去考虑它为什么能够这样但CSS继承也是有限制的。有一些属性不能被继承如border, margin, padding, background等。 1 1、文内的样式优先级为1,0,0,0所以始终高于外部定义。这里文内样式指形如div stylecolor:redblah/div的样式而外部定义指经由link或style卷标定义的规则。
2
3 2、有!important声明的规则高于一切。
4
5 3、如果!important声明冲突则比较优先权。
6
7 4、如果优先权一样则按照在源码中出现的顺序决定后来者居上。
8
9 5、由继承而得到的样式没有specificity的计算它低于一切其它规则(比如全局选择符*定义的规则)。 1 !DOCTYPE html2 html langen3 head4 meta charsetUTF-85 titleTitle/title6 style7 8 #he{9 background-color: red;
10 }
11 .hello{
12 background-color: aqua !important;
13 }
14
15
16 /style
17 /head
18 body
19 p idhe classhellohello workd /p
20 /body
21 /html 三.css的常用属性。 1.颜色属性。 1 div stylecolor:bluevioletppppp/div
2 div stylecolor:#ffee33ppppp/div
3 div stylecolor:rgb(255,0,0)ppppp/div
4 div stylecolor:rgba(255,0,0,0.5)ppppp/div 2.字体属性。 font-size: 20px/50%/larger #设置字体大小
font-family:Lucida Bright #设置字体样式如宋体罗马字体等
font-weight: lighter/bold/border #设置字体宽度 3.背景属性。 1 background-color: cornflowerblue # 背景颜色2 3 background-image: url(1.jpg); # 背景图片4 5 background-repeat: no-repeat;(repeat:平铺满)6 7 background-position: right top20px 20px;(横向left center right)(纵向top center bottom)8 9 简写body stylebackground: 20px 20px no-repeat #ff4 url(1.jpg)
10
11 div stylewidth: 300px;height: 300px;background: 20px 20px no-repeat #ff4 url(1.jpg) 注意如果将背景属性加在body上要记得给body加上一个height否则结果异常这是因为body为空无法撑起背景图片另外如果此时要设置一个width100px你也看不出效果除非你设置出html。 1 !DOCTYPE html2 html langen3 head4 meta charsetUTF-85 titleTitle/title6 style7 html{8 background-color: antiquewhite;9
10 }
11 body{
12 width: 100px;
13 height: 600px;
14 background-color: deeppink;
15 background-image: url(1.jpg);
16 background-repeat: no-repeat;
17 background-position: center center;
18 }
19 /style
20 /head
21 body
22
23 /body
24 /html 1 !DOCTYPE html2 html langen3 head4 meta charsetUTF-85 titleTitle/title6 7 style8 9 span{
10 display: inline-block; #将内联标签设置为块级标签inline内联标签
11 width: 18px;
12 height: 20px;
13 background-image: url(http://dig.chouti.com/images/icon_18_118.png?v2.13);
14 background-position: 0 -100px;
15 }
16 /style
17 /head
18 body
19
20
21 span/span
22
23 /body
24 /html 4.文本属性 1 font-size: 10px;2 3 text-align: center; 横向排列4 5 line-height: 200px; 文本行高 通俗的讲文字高度加上文字上下的空白区域的高度 50%:基于字体大小的百分比6 7 vertical-align:4px 设置元素内容的垂直对齐方式 ,只对行内元素有效对块级元素无效8 9
10 text-indent: 150px; 首行缩进
11 letter-spacing: 10px; 字符间距
12 word-spacing: 20px; 单词间距
13 text-transform: capitalize; 改变文本如首字母大写 1 !DOCTYPE html2 html langen3 head4 meta charsetUTF-85 titleTitle/title6 style7 .div-1{8 background-color: coral;9 width: 100px;
10 height: 100px;
11 font-size: 10px;
12 text-align: center;
13 line-height: 100px;
14 letter-spacing: 2px;
15 word-spacing: 5px;
16 text-transform: capitalize;
17 }
18 /style
19 /head
20 body
21 div classdiv-1hello world/div
22 /body
23 /html 5.边框属性 1 border-style: solid; #边框样式如实线虚线等
2 border-color: chartreuse; # 边框颜色
3 border-width: 20px; # 边框宽度
4 简写border: 30px rebeccapurple solid; 边框属性border_radius box-shadow border-image border-radius属性用于创建圆角 box-shadow:向方框添加阴影 border-image使用图片来创建边框 dashed 虚线 浏览器支持 Internet Explorer 9 支持 border-radius 和 box-shadow 属性。 Firefox、Chrome 以及 Safari 支持所有新的边框属性。 注释对于 border-imageSafari 5 以及更老的版本需要前缀 -webkit-。 Opera 支持 border-radius 和 box-shadow 属性但是对于 border-image 需要前缀 -o-。 1 !DOCTYPE html2 html langen3 head4 meta charsetUTF-85 titleTitle/title6 style7 .div-1{8 border:10px red solid;9 }
10 /style
11 /head
12 body
13 div classdiv-1hello world/div
14 /body
15 /html 6.列表属性。 1 ul,ol{ list-style: decimal-leading-zero; #数字
2 list-style: none; br
3 list-style: circle; # 圆形
4 list-style: upper-alpha; # 大写字母
5 list-style: disc; } # 圆形实体 1 !DOCTYPE html2 html langen3 head4 meta charsetUTF-85 titleTitle/title6 style7 ul, ol{8 /*list-style: decimal-leading-zero;*/9 /*list-style: none;*/
10 /*list-style: upper-alpha;*/
11 /*list-style: disc;*/
12 list-style: circle;
13 }
14 /style
15 /head
16 body
17 ul
18 li无序列表第一行/li
19 li无序列表第二行/li
20 /ul
21 ol
22 li有序列表第一行/li
23 li有序列表第二行/li
24 /ol
25 dl
26 dt stylecolor: coral列表标题/dt
27 dd自定义列表第一行/dd
28 dd自定义列表第二行/dd
29 /dl
30
31 /body
32 /html 7.dispaly属性 1 none # 不设置如何属性
2 block # 设置为块属性
3 inline # 设置为内联标签
4 inline-block #自定义布局拥有块和内联的属性 1 !DOCTYPE html2 html langen3 head4 meta charsetUTF-85 titleTitle/title6 style7 .span1{8 display: block;9 width: 100px;
10 height: 100px;
11 background-color: aqua;
12 }
13 .span2{
14 display: block;
15 width: 100px;
16 height: 100px;
17 background-color: coral;
18 }
19 .p1,.p2{
20 display: inline;
21 }
22 /style
23 /head
24 body
25 span classspan1/span
26 span classspan2/span
27 p classp1hello p1/p
28 p classp2hello p2/p
29 /body
30 /html 8.外边距和内边距 1 span style2 height: 20px; # 高度3 padding-bottom: 34px; # 底部填充4 border-top-width: 41px; # 上边框5 margin-top: 50px; # 上边界6 margin-right: 53px; # 右边界 7 margin-left: 52px; # 左边界8 margin-bottom: 54px; # 下边界9 width: 10px; # 宽度
10 border-bottom-width: 3‒; # 下边框
11 border-left-width: 42px; # 左边框
12 border-right-width: 43px; # 右边框
13 padding-left: 32px; # 左边填充
14 padding-right: 33px; # 右边填充
15 border-bottom-width: 44px; # 下边框
16 /span 外边距margin):用于控制元素与元素之间的距离 边框border):盒子本身 内边距padding:用于控制内容和边框之间的距离填充 内容content:盒子的内容 元素的宽度和高度: 1 margin:10px 5px 15px 20px;-----------上 右 下 左
2 margin:10px 5px 15px;----------------上 右左 下
3 margin:10px 5px;---------------------上下 右左
4 margin:10px; ---------------------上右下左 1 !DOCTYPE html2 html langen3 head4 meta charsetUTF-85 titleTitle/title6 style7 body{8 margin: 0;9 }
10 .div1{
11 width: 200px;
12 height: 100px;
13 background-color: aqua;
14 margin: 10px;
15 border: 5px deeppink solid;
16 padding: 3px;
17 }
18 .div2{
19 width: 100px;
20 height: 200px;
21 background-color: coral;
22 }
23 .div3{
24 width: 200px;
25 height: 100px;
26 background-color: royalblue;
27 }
28 .div4{
29 width: 200px;
30 height: 100px;
31 background-color: yellowgreen;
32 }
33 /style
34 /head
35 body
36 div classdiv1/div
37 div classdiv2/div
38 div classdiv3/div
39 div classdiv4/div
40 /body
41 /html 边框在默认情况下会定位于浏览器窗口的左上角但是并没有紧贴着浏览器的窗口的边框这是因为body本身也是一个盒子外层还有html在默认情况下 body距离html会有若干像素的margin具体数值因各个浏览器不尽相同所以body中的盒子不会紧贴浏览器窗口的边框了 解决方法 1 body{
2 margin: 0;
3 } 边界塌陷或者边界重叠margin collapse 外边距的重叠只产生在普通流文档的上下外边距之间这个看起来有点奇怪的规则其实有其现实意义。设想当我们上下排列一系列规则的块级元素如段 落P时那么块元素之间因为外边距重叠的存在段落之间就不会产生双倍的距离。又比如停车场 1兄弟div上面div的margin-bottom和下面div的margin-top会塌陷也就是会取上下两者margin里最大值作为显示值 2父子div if 父级div中没有 borderpaddinginline content子级div的margin会一直向上找直到找到某个标签包括borderpaddinginline content 中的其中一个然后按此div 进行margin 1 !DOCTYPE html2 html langen stylepadding: 0px3 head4 meta charsetUTF-85 titleTitle/title6 style7 8 body{9 margin: 0px;
10 }
11
12 .div1{
13 background-color: aqua;
14 width: 300px;
15 height: 300px;
16 }
17 .div2{
18 background-color: blueviolet;
19 width: 100px;
20 height: 100px;
21 margin: 20px;
22 }
23 /style
24 /head
25 body
26 div stylebackground-color: cadetblue;width: 300px;height: 300px/div
27 div classdiv1
28 div classdiv2/div
29 div classdiv2/div
30 /div
31 /body
32 /html 解决方法 在div1中加入以下属性1 border:1px solid transparent #transparent设置为透明
2 padding:1px
3 over-flow:hidden; #隐藏文档流 9.float属性 先来了解一下block元素和inline元素在文档流中的排列方式。 block元素通常被现实为独立的一块独占一行多个block元素会各自新起一行默认block元素宽度自动填满其父元素宽度。block元素可以设置width、height、margin、padding属性 inline元素不会独占一行多个相邻的行内元素会排列在同一行里直到一行排列不下才会新换一行其宽度随元素的内容而变化。inline元素设置width、height属性无效。inline元素的margin和padding属性。水平方向的padding-left, padding-right, margin-left, margin-right都产生边距效果但竖直方向的padding-top, padding-bottom, margin-top, margin-bottom不会产生边距效果。 常见的块级元素有 div、form、table、p、pre、h1h5、dl、ol、ul 等。常见的内联元素有span、a、strong、em、label、input、select、textarea、img、br等 所谓的文档流指的是元素排版布局过程中元素会自动从左往右从上往下的流式排列。 脱离文档流也就是将元素从普通的布局排版中拿走其他盒子在定位的时候会当做脱离文档流的元素不存在而进行定位。 只有绝对定位absolute和浮动float才会脱离文档流。 ---部分无视和完全无视的区别需要注意的是使用float脱离文档流时其他盒子会无视这个元素但其他盒子内的文本依然会为这个元素让出位置环绕在周围(可以说是部分无视)。而对于使用absolute position脱离文档流的元素其他盒子与其他盒子内的文本都会无视它。(可以说是完全无视) 浮动的表现 定义浮动的框可以向左或向右移动直到它的外边缘碰到包含框或另一个浮动框的边框为止。由于浮动框不在文档的普通流中所以文档的普通流中的浮动框之后的块框表现得就像浮动框不存在一样。注意这里是块框而不是内联元素浮动框只对它后面的元素造成影响 注意 当初float被设计的时候就是用来完成文本环绕的效果所以文本不会被挡住这是float的特性即float是一种不彻底的脱离文档流方式。无论多么复杂的布局其基本出发点均是“如何在一行显示多个div元素”。 现象1: 假如某个div元素A是浮动的如果A元素上一个元素也是浮动的那么A元素会跟随在上一个元素的后边(如果一行放不下这两个元素那么A元素会被挤到下一行)如果A元素上一个元素是标准流中的元素那么A的相对垂直位置不会改变也就是说A的顶部总是和上一个元素的底部对齐。此外浮动的框之后的block元素元素会认为这个框不存在但其中的文本依然会为这个元素让出位置。 浮动的框之后的inline元素会为这个框空出位置然后按顺序排列。 现象2: (1)左右结构div盒子重叠现象一般是由于相邻两个DIV一个使用浮动一个没有使用浮动。如上面的例1相邻的两个盒子box2向左浮动、box3未浮动。一个使用浮动一个没有导致DIV不是在同个“平面”上但内容不会照成覆盖现象只有DIV形成覆盖现象。 解决方法要么都不使用浮动要么都使用float浮动要么对没有使用float浮动的DIV设置margin样式。 (2)上下结构div盒子重叠现象 !DOCTYPE html
html langen
headmeta charsetUTF-8titleTitle/title
style typetext/css* {margin:0;padding:0;}.container{border:1px solid red;width:300px;}#box1{background-color:green;float:left;width:100px;height:100px;}#box2{background-color:deeppink;float:right;width:100px;height:100px;}#box3{background-color:pink;height:40px;}
/style
/head
body
bodydiv classcontainerdiv idbox1box1 向左浮动/divdiv idbox2box2 向右浮动/div/divdiv idbox3box3/div
/body
/body
/html 例子如上.container和box3的布局是上下结构上图发现box3跑到了上面与.container产生了重叠但文本内容没有发生覆盖只有div发生覆盖现象。这个原因是因为第一个大盒子里的子元素使用了浮动脱离了文档流导致.container没有被撑开。box3认为.container没有高度未被撑开因此跑上去了。 解决方法 1、要么给.container设置固定高度一般情况下文字内容不确定多少就不能设置固定高度所以一般不能设置“.container”高度(当然能确定内容多高这种情况下“.container是可以设置一个高度即可解决覆盖问题。 2、要么清除浮动。 清除浮动 在非IE浏览器如Firefox下当容器的高度为auto且容器的内容中有浮动float为left或right的元素在这种情况下容器的高度不能自动伸长以适应内容的高度使得内容溢出到容器外面而影响甚至破坏布局的现象。这个现象叫浮动溢出为了防止这个现象的出现而进行的CSS处理就叫CSS清除浮动。 1 clear语法
2 clear : none | left | right | both
3 取值
4 none : 默认值。允许两边都可以有浮动对象
5 left : 不允许左边有浮动对象
6 right : 不允许右边有浮动对象
7 both : 不允许有浮动对象
8 但是需要注意的是clear属性只会对自身起作用而不会影响其他元素。如果一个元素的右侧有一浮动对象而这个元素设置了不允许右边有浮动对象即clearright则这个元素会自动下移一格达到本元素右边没有浮动对象的目的。 方法一工作中推荐使用 1 .clearfix:after { ----在类名为“clearfix”的元素内最后面加入内容 2 content: .; ----内容为“.”就是一个英文的句号而已。也可以不写。 3 display: block; ----加入的这个元素转换为块级元素。 4 clear: both; ----清除左右两边浮动。 5 visibility: hidden; ----可见度设为隐藏。注意它和display:none;是有区别的。visibility:hidden;仍然占据空间只是看不到而已 6 line-height: 0; ----行高为0 7 height: 0; ----高度为0 8 font-size:0; ----字体大小为0 9 }
10 .clearfix { *zoom:1;} ----这是针对于IE6的因为IE6不支持:after伪类这个神奇的zoom:1让IE6的元素可以清除浮动来包裹内部元素。 示例 1 !DOCTYPE html2 html langen3 head4 meta charsetUTF-85 titleTitle/title6 style typetext/css7 * {8 margin:0;9 padding:0;
10 }
11
12 .container{
13 border:1px solid red;
14 width:300px;
15 }
16 .clearfix:after{ # 解决浮动溢出
17 content: ; # 内容为空
18 clear: both; # 清除左右两边浮动
19 display: block; # 设置为块级标签
20 }
21 #box1{
22 background-color:green;
23 float:left;
24 width:100px;
25 height:100px;
26 /*clear: left;*/
27 }
28 #box2{
29 background-color:deeppink;
30 /*float:right;*/
31 width:100px;
32 height:100px;
33 clear: left; # 不允许左浮动
34 }
35 #box3{
36 background-color:pink;
37 height:40px;
38 }
39 /style
40 /head
41 body
42 div classcontainer clearfix
43 div idbox1box1 向左浮动/div
44 div idbox2box2 向右浮动/div
45 /div
46 div idbox3box3/div
47 /body
48 /html 整段代码就相当于在浮动元素后面跟了个宽高为0的空div然后设定它clear:both来达到清除浮动的效果。 之所以用它是因为你不必在html文件中写入大量无意义的空标签又能清除浮动。 方法二 1 overflow:hidden; overflowhidden的含义是超出的部分要裁切隐藏float的元素虽然不在普通流中但是他是浮动在普通流之上的可以把普通流元素浮动元素想象成一个立方体。如果没有明确设定包含容器高度的情况下它要计算内容的全部高度才能确定在什么位置hidden这样浮动元素的高度就要被计算进去。这样包含容器就会被撑开清除浮动。 10 position(定位) 1 static static 默认值无定位不能当作绝对定位的参照物并且设置标签对象的left、top等值是不起作用的的。 2 position: relativeabsolute relative 相对定位。相对定位是相对于该元素在文档流中的原始位置即以自己原始位置为参照物。有趣的是即使设定了元素的相对定位以及偏移值元素还占有着原来的位置即占据文档流空间。对象遵循正常文档流但将依据toprightbottomleft等属性在正常文档流中偏移位置。而其层叠通过z-index属性定义。 注意positionrelative的一个主要用法方便绝对定位元素找到参照物。 1 !DOCTYPE html2 html langen3 head4 meta charsetUTF-85 titleTitle/title6 style7 .div1{8 width: 200px;9 height: 100px;
10 background-color: chartreuse;
11 }
12 .div2{
13 width: 200px;
14 height: 100px;
15 background-color: coral;
16 position: relative; #相对定位已自己本身的位置为参照物
17 top:10px; #先上移动10像素
18 left: 30px; #先左移动30像素
19
20 }
21 .div3{
22 width: 200px;
23 height: 100px;
24 background-color: hotpink;
25 }
26 .div4{
27 width: 200px;
28 height: 100px;
29 background-color: darkorchid;
30 }
31 /style
32
33 /head
34 body
35 div classdiv1/div
36 div classdiv2/div
37 div classdiv3/div
38 div classdiv4/div
39 /body
40 /html absolute 绝对定位。 定义设置为绝对定位的元素框从文档流完全删除并相对于最近的已定位祖先元素定位如果元素没有已定位的祖先元素那么它的位置相对于最初的包含块即body元素。元素原先在正常文档流中所占的空间会关闭就好像该元素原来不存在一样。元素定位后生成一个块级框而不论原来它在正常流中生成何种类型的框。 重点如果父级设置了position属性例如position:relative;那么子元素就会以父级的左上角为原始点进行定位。这样能很好的解决自适应网站的标签偏离问题即父级为自适应的那我子元素就设置position:absolute;父元素设置position:relative;然后Top、Right、Bottom、Left用百分比宽度表示。 另外对象脱离正常文档流使用toprightbottomleft等属性进行绝对定位。而其层叠通过z-index属性定义。 总结参照物用相对定位子元素用绝对定位并且保证相对定位参照物不会偏移即可。 1 !DOCTYPE html2 html langen3 head4 meta charsetUTF-85 titleTitle/title6 style7 div{8 position: relative; # 将父级设置为相对定位9 }
10 .div1{
11 width: 200px;
12 height: 100px;
13 background-color: chartreuse;
14 }
15 .div2{
16 width: 200px;
17 height: 100px;
18 background-color: coral;
19 position: absolute; # 设置为绝对定位已父级容器为参照物
20 top:10px;
21 left: 30px;
22
23 }
24 .div3{
25 width: 200px;
26 height: 100px;
27 background-color: hotpink;
28 }
29 .div4{
30 width: 200px;
31 height: 100px;
32 background-color: darkorchid;
33 }
34 /style
35
36 /head
37 body
38 div stylewidth: 200px; height: 200px; background-color: antiquewhite/div
39 div classdiv
40 div classdiv1/div
41 div classdiv2/div
42 div classdiv3/div
43 div classdiv4/div
44 /div
45 /body
46 /html 3 position:fixed以窗口为参照物 fixed对象脱离正常文档流使用toprightbottomleft等属性以窗口为参考点进行定位当出现滚动条时对象不会随着滚动。而其层叠通过z-index属性 定义。 注意点 一个元素若设置了 position:absolute | fixed; 则该元素就不能设置float。这 是一个常识性的知识点因为这是两个不同的流一个是浮动流另一个是“定位流”。但是 relative 却可以。因为它原本所占的空间仍然占据文档流。 在理论上被设置为fixed的元素会被定位于浏览器窗口的一个指定坐标不论窗口是否滚动它都会固定在这个位置。 1 !DOCTYPE html2 html langen3 head4 meta charsetUTF-85 titleTitle/title6 style7 div{8 position: relative;9 }
10 .div1{
11 width: 200px;
12 height: 100px;
13 background-color: chartreuse;
14 }
15 .div2{
16 width: 200px;
17 height: 100px;
18 background-color: coral;
19 position: absolute;
20 top:10px;
21 left: 30px;
22
23 }
24 .div3{
25 width: 200px;
26 height: 100px;
27 background-color: hotpink;
28 }
29 .div4{
30 width: 200px;
31 height: 100px;
32 background-color: darkorchid;
33 }
34 .rentutop{
35 width: 65px;
36 height: 20px;
37 position: fixed; #固定定位
38 background-color: cadetblue;
39 color: white;
40 bottom: 40px;
41 right: 40px;
42 }
43 /style
44
45 /head
46 body
47 div stylewidth: 200px; height: 200px; background-color: antiquewhite/div
48 div classdiv
49 div classdiv1/div
50 div classdiv2/div
51 div classdiv3/div
52 div classdiv4/div
53 /div
54 div stylewidth: 1000px; height: 1000px; background-color: chartreuse/div
55 div classrentutop返回顶部/div
56 /body
57 /html 4 仅使用margin属性布局绝对定位元素脱离文档流与position: relative相识都以自己为参照物不同点就是已脱离文档流 此情况margin-bottom 和margin-right的值不再对文档流中的元素产生影响因为该元素已经脱离了文档流。另外不管它的祖先元素有没有定位都是以文档流中原来所在的位置上偏移参照物。 图9中使用margin属性布局相对定位元素。 层级关系为 div ——————————— position:relative; div—————————-没有设置为定位元素不是参照物 div———————-没有设置为定位元素不是参照物 div box1 div box2 ——–position:absolute; margin-top:50px; margin-left:120px; div box3 效果图 转载于:https://www.cnblogs.com/YingLai/p/6377479.html