页面布局
列表
-
无序列表 ul li
-
有序列表 ol li
-
定义列表 dl dt dd
-
相关css属性 list-style list-style-type list-style-image list-style-position
表格
-
标签 table caption thead tbody tfoot tr th td
-
colspan rowspan td/th 的属性
-
CSS属性: table-layout、border-collapse 、border-sapcing、 caption-side、 empty-cells
表单
-
input type(text、password、radio、checkbox、file、url、email、tel、search、range、color、date、time、week、month、datetime-local、number、button、submit、reset)
-
select option
-
textarea
-
button
-
属性:placeholder(H5)、disable、enable、readonly、 required、pattern、 autocomplete=“on/off” title autofocus
视频
-
video src autoplay loop poster preload controls
-
audio src
-
source src
页面布局
有些CSS属性,后代元素会集成祖先元素的设置。font类型、color、文本属性
有些CSS属性,不会继承祖先元素。布局相关、border、背景
1 盒子模型
1.1 定义
-
任意一个元素都可以当做盒子模型
-
盒子的大小 内容宽高(width/height) + 边距(padding)+边框(border)
-
盒子有外边距,影响盒子的位置
1 <!DOCTYPE html> 2 <html lang="en"> 3 <head> 4 <meta charset="UTF-8"> 5 <title>盒子模型</title> 6 <style> 7 #box { 8 width: 300px; 9 height: 300px; 10 padding: 20px; 11 border: 5px solid orange; 12 13 /*外边距*/ 14 margin: 20px; 15 16 background: pink; 17 } 18 </style> 19 </head> 20 <body> 21 <h1>盒子模型</h1> 22 <hr> 23 24 <div id="box"> 25 Lorem ipsum dolor sit amet. 26 </div> 27 </body> 28 </html>
1.2 块状元素和内联元素
块状(块级)
-
能够独占一行
-
默认宽度是父元素的宽,高度是自动(被内容撑开)
内联(行内)
-
不能独占一行
-
默认宽度是自动(被内容撑开),高度也是自动
-
大部分内联元素设置宽高无效,设置内边距有效但是影响其他元素
-
margin可以设置左右,不能设置 上下的
-
CSS的文本属性 会对内联元素生效
补充:
1.块级元素:
在html中<div>、 <p>、<h1>、<form>、<ul> 和 <li>就是块级元素。设置display:block就是将元素显示为块级元素。块级元素特点:
(1)、每个块级元素都从新的一行开始,并且其后的元素也另起一行;(一个块级元素独占一行)
(2)、元素的高度、宽度、行高以及顶和底边距都可设置;
(3)、元素宽度在不设置的情况下,是它本身父容器的100%(和父元素的宽度一致),除非设定一个宽度。
2.内联元素:
在html中,<span>、<a>、<label>、<input>、 <img>、 <strong> 和<em>就是典型的内联元素(行内元素)(inline)元素。当然块状元素也可以通 过代码display:inline将元素设置为内联元素。内联元素特点:
(1)、和其他元素都在一行上;
(2)、元素的高度、宽度、行高及顶部和底部边距不可设置;
(3)、元素的宽度就是它包含的文字或图片的宽度,不可改变。
注意:为 a 元素设置了宽和高,但都没有起到作用,原因是a在默认的时候是内联元素,内联元素是不可以设置宽和高的。
3.内联块状元素:
内联块状元素(inline-block)就是同时具备内联元素、块状元素的特点,代码display:inline-block就是将元素设置为内联块状元素。inline-block元素特点:
(1)、和其他元素都在一行上;
(2)、元素的高度、宽度、行高以及顶和底边距都可设置。
注意:img是inline元素,但是他同时也是替换元素,他有着特殊的表现:
1. 可以设置width/height;
2. 默认的,img元素在屏幕占据的空间与其图片的实际像素一致,除非CSS有设置或者自身的width/height HTML 属性有设置;
3. 如果img标签的包裹元素为也为inline元素,则img的边界可以超出其直接父元素的边界,直到自己的宽、高达到最大或者设定值为止,而且文档流中img的兄弟元素也不能遮盖住img。最常见的就是<a>里面包含的<img>;
4. 所以从行为上看,img元素作为替换元素,有着类似于Inline-block的行为,尽管在SPEC里面,他的确是一个inline元素。
1 <!DOCTYPE html> 2 <html lang="en"> 3 <head> 4 <meta charset="UTF-8"> 5 <title>块状元素和内联元素</title> 6 <style> 7 h1 {width: 300px;} 8 body { 9 width: 200px; 10 } 11 12 strong { 13 width: 200px; 14 height: 100px; 15 padding: 20px; 16 border: 1px solid red; 17 } 18 19 div { 20 border: 1px solid red; 21 padding: 50px; 22 } 23 24 25 </style> 26 </head> 27 <body> 28 <h1>块状元素和内联元素</h1> 29 同志你好 30 <hr> 31 32 <div> 33 Lorem ipsum dolor sit amet. 34 </div> 35 36 <a href="#">同志</a> 37 你好 38 39 <hr> 40 41 <strong>我很状</strong> 42 43 44 </body> 45 </html>
1.3 盒子模型和盒子模型之间的关系
document树
父元素 子元素 后代元素 祖先元素 兄弟元素
标准文档流
-
块状元素 独占一行
-
内联共享一行
盒子在文档模型的位置
-
给盒子设置边距, 前面有兄弟元素,距离兄弟元素的距离。 没有距离父元素的内容的距离
-
垂直方向的margin会塌陷。 上(margin-bottom)下(margin-top)两个元素之间的距离,取最大。 水平方向没有这个问题
1 <!DOCTYPE html> 2 <html lang="en"> 3 <head> 4 <meta charset="UTF-8"> 5 <title>盒子模型关系</title> 6 <style> 7 #box { 8 width:200px; 9 height:200px; 10 background: #ccc; 11 /*border: 1px solid red;*/ 12 overflow: hidden; 13 } 14 15 #inner { 16 margin-left:50px; 17 margin-top: 50px; 18 width: 100px; 19 height: 100px; 20 background: orange; 21 } 22 </style> 23 </head> 24 <body> 25 <h1>盒子模型关系</h1> 26 <hr> 27 28 <div id="box"> 29 <div id="inner"></div> 30 </div> 31 32 </body> 33 </html>
-
父子元素,给子元素设置垂直方向的margin,同样会产生塌陷。 解决: 给父元素设置边框 或者
overflow:hidden
-
margin可以设置为负值
1 <!DOCTYPE html> 2 <html lang="en"> 3 <head> 4 <meta charset="UTF-8"> 5 <title>盒子模型关系</title> 6 <style> 7 #box01 { 8 border:1px solid red; 9 padding: 10px; 10 } 11 .item { 12 width: 100px; 13 height: 100px; 14 background: pink; 15 border: 1px dashed orange; 16 } 17 18 .item01 { 19 margin-top: 10px; 20 margin-left: 10px; 21 margin-bottom: 30px; 22 } 23 24 .item02 { 25 margin-top:40px; 26 } 27 28 #box02 span { 29 border:1px solid pink; 30 background: #ccc; 31 } 32 33 #box02 { 34 border: 1px solid red; 35 } 36 37 .span01 { 38 margin-top: 20px; 39 margin-left: 20px; 40 margin-right:20px; 41 } 42 .span02 { 43 margin-left: 10px; 44 } 45 </style> 46 </head> 47 <body> 48 <h1>盒子模型关系</h1> 49 <hr> 50 51 <div id="box01"> 52 <div class="item item01">1</div> 53 <div class="item item02">2</div> 54 <div class="item">3</div> 55 <div class="item">4</div> 56 </div> 57 58 <hr> 59 60 <div id="box02"> 61 <!--内联元素--> 62 <span class="span01">1</span><span class="span02">2</span><span>3</span><span>4</span> 63 </div> 64 65 </body> 66 </html>
1.4 布局相关属性
display
-
block 设置块
-
inline 设置为内联
-
inline-block 兼具两者 有些html元素,默认就是inline-block (img, input, textarea .td,th)
-
none 隐藏
1 <!DOCTYPE html> 2 <html lang="en"> 3 <head> 4 <meta charset="UTF-8"> 5 <title>文本属性-同志交友</title> 6 <style> 7 #box { 8 width:400px; 9 height: 200px; 10 border: 1px dashed pink; 11 background:#ccc; 12 13 text-align: center; 14 line-height: 200px; 15 } 16 17 #box p { 18 width: 200px; 19 border:1px solid orange; 20 padding:10px; 21 } 22 23 #box a{ 24 border: 1px solid red; 25 } 26 </style> 27 </head> 28 <body> 29 <div id="box"> 30 <!--块--> 31 <p>Lorem ipsum dolor sit amet.</p> 32 33 <!--内联--> 34 <a href="#">超链接</a> 35 </div> 36 </body> 37 </html>
布局相关
-
visibility: visible/hidden
-
overflow: hidden/auto/scroll/visible
-
overflow-x
-
overflow-y
尺寸
-
width / max-width / min-width
-
height / max-height / min-height
1 <!DOCTYPE html> 2 <html lang="en"> 3 <head> 4 <meta charset="UTF-8"> 5 <title>display</title> 6 <style> 7 .item { 8 width:100px; 9 height:100px; 10 background:#ccc; 11 border:1px solid pink; 12 13 /*把块->内联*/ 14 display: inline; 15 } 16 17 #box02 a{ 18 width:100px; 19 height:100px; 20 background:#f5f5f5; 21 border:1px solid red; 22 23 /*内联 块*/ 24 display: block; 25 } 26 27 .product-box { 28 display: block; 29 padding: 10px; 30 width: 150px; 31 border:1px solid #ccc; 32 } 33 .product-box img{ 34 width:150px; 35 } 36 37 .list { 38 list-style: none; 39 text-align: center; 40 font-size:0px; 41 } 42 .list li { 43 width: 100px; 44 height: 100px; 45 border:1px solid pink; 46 background: #ccc; 47 padding:10px; 48 /*margin:20px;*/ 49 50 /*设置为 inline-block*/ 51 display:inline-block; 52 53 font-size:16px; 54 } 55 </style> 56 </head> 57 <body> 58 <div id="box"> 59 <div class="item">1</div> 60 <div class="item">2</div> 61 <div class="item">3</div> 62 <div class="item">4</div> 63 </div> 64 65 <hr> 66 67 <div id="box02"> 68 <a href="#">1</a> 69 <a href="#">2</a> 70 <a href="#">3</a> 71 <a href="#">4</a> 72 </div> 73 74 <a href="1.html" class="product-box"> 75 <div class="product"> 76 <img src="../../dist/images_one/10.jpg" alt=""> <!--内联--> 77 <h3>商品</h3> 78 <p> 79 Lorem ipsum dolor sit amet, 80 </p> 81 </div> 82 83 </a> 84 85 <hr> 86 87 88 <ul class="list"> 89 <li>1</li> 90 <li>2</li> 91 <li>3</li> 92 <li>4</li> 93 </ul> 94 95 <img src="../../dist/images_one/10.jpg" alt=""> 96 <img src="../../dist/images_one/10.jpg" alt="" style="display: none"> 97 </body> 98 </html>
内边距
外边距
-
margin 4个值 3 2 1
-
margin-left
-
margin-top
-
margin-bottom
-
margin-right
1 <!DOCTYPE html> 2 <html lang="en"> 3 <head> 4 <meta charset="UTF-8"> 5 <title>相关属性</title> 6 <style> 7 #box { 8 width:100px; 9 height:100px; 10 background: red; 11 12 /*visibility: hidden;*/ 13 display: none; 14 } 15 16 .box { 17 width: 200px; 18 height: 200px; 19 border: 2px solid red; 20 21 /*控制子元素的显示*/ 22 /*overflow: hidden; /*隐藏溢出的部分*/ 23 /*overflow: scroll; 出现滚动条*/ 24 /*overflow: auto; 出现滚动条*/ 25 26 overflow-y:hidden; 27 } 28 29 .box ul { 30 width:500px; 31 } 32 </style> 33 </head> 34 <body> 35 <h1>相关属性</h1> 36 <hr> 37 38 <div id="box"> 39 40 </div> 41 42 <p>Lorem ipsum dolor sit amet.</p> 43 44 <hr> 45 46 <div class="box"> 47 <ul> 48 <li>Lorem ipsum dolor sit amet, consectetur adipisicing elit. Possimus modi repellat, laudantium asperiores dolor aliquid quae vitae quaerat delectus debitis magni nihil dolore voluptates facilis labore aut iure sit sint!</li> 49 <li>Lorem ipsum dolor sit amet, consectetur adipisicing elit. Possimus modi repellat, laudantium asperiores dolor aliquid quae vitae quaerat delectus debitis magni nihil dolore voluptates facilis labore aut iure sit sint!</li> 50 <li>Lorem ipsum dolor sit amet, consectetur adipisicing elit. Possimus modi repellat, laudantium asperiores dolor aliquid quae vitae quaerat delectus debitis magni nihil dolore voluptates facilis labore aut iure sit sint!</li> 51 <li>Lorem ipsum dolor sit amet, consectetur adipisicing elit. Possimus modi repellat, laudantium asperiores dolor aliquid quae vitae quaerat delectus debitis magni nihil dolore voluptates facilis labore aut iure sit sint!</li> 52 </ul> 53 </div> 54 55 </body> 56 </html>
最大宽和最小宽(max-width和min-width)
1 <!DOCTYPE html> 2 <html lang="en"> 3 <head> 4 <meta charset="UTF-8"> 5 <title> </title> 6 <style> 7 div { 8 display: inline-block; 9 10 /*max-width: 300px; 对块状有用*/ 11 min-width: 300px; /*对inline-block 有用*/ 12 border: 1px solid red; 13 } 14 </style> 15 </head> 16 <body> 17 <div> 18 Lorem ipsum dolor sit amet. 19 20 </div> 21 </body> 22 </html>
作业
-
总结学过的元素, 块 内联 (inline-block的特征)
-
总结所有的HTML元素, 所有的CSS属性。