一、元素显示模式
元素(标签)以什么方式进行显示,比如div自己占一行,一行放多个span
1. 块元素
独占一行 高度,宽度,外边距以及内边距可调 宽度默认是容器(父级宽度)的100% 是一个容器及盒子,里面可以放行内或块元素 文字类的元素内不能使用块级元素,比如p标签和h标签不能放其他块级元素
< h1 > ~< h6 >
< p>
< div>
< ul>
< ol>
< li>
2. 行内元素/内联元素
相邻行内元素在一行上,一行可以显示多个 高,宽直接设置是无效的 默认宽度就是它本身内容的宽度 行内元素只能容纳文本或其他行内元素
< a>
< strong> < b>
< em> < li>
< del>
< s> < ins>
< u>
< span> : 最典型的行内元素
3. 行内块元素
和相邻行内元素在一行上,但是会有空白缝隙,一行可以显示多个 默认宽度就是它本身内容的宽度 高度,行高,外边距以及内边距都可以控制
< img/>
< input/>
< td>
4. 显示模式的转换
特殊情况下,我们需要元素模式的转换:一个模式的元素需要另外一种模式的特性
< html lang = " en" >
< head>
< meta charset = " UTF-8" >
< title> Title</ title>
< style>
a {
width : 200px;
height : 50px;
background-color : green;
display : block;
}
div {
width : 200px;
height : 50px;
background-color : red;
display : inline;
}
</ style>
</ head>
< body>
< a href = " #" > Nike乔丹</ a>
< div> 我是块级元素</ div>
</ body>
</ html>
5. 单行文字垂直居中
css没有提供文字垂直居中的代码 解决方案:让文字的行高等于盒子的高度,就可以让文字在当前盒子内垂直居中 line-height
行高的上空隙和下空隙把文字挤到中间了
1 . 如果行高小于盒子高度,文字会偏上
2 . 如果行高大于盒子高度,文字会偏下
二、CSS属性
1. 背景图片
< html lang = " en" >
< head>
< meta charset = " UTF-8" >
< title> Title</ title>
< style>
div {
width : 2000px;
height : 2000px;
background-color : black;
background-image : url ( "1.png" ) ;
background-repeat : no-repeat;
background-position : 50px 20px;
background-attachment : scroll;
}
</ style>
</ head>
< body>
< div>
</ div>
</ body>
</ html>
2. CSS特性
2.1 层叠性
< head>
< meta charset = " UTF-8" >
< title> Title</ title>
< style>
div {
height : 50px;
width : 50px;
background-color : red;
}
div {
background-color : black;
}
</ style>
</ head>
< body>
< div>
</ div>
2.2 继承性
子标签会继承父标签样式 只是某些样式,比如文本颜色和字号, text- font- line- color属性
< head>
< meta charset = " UTF-8" >
< title> Title</ title>
< style>
body {
font : 12px/1.5 "Microsoft YaHei UI" ;
}
div {
font-size : 30px;
}
</ style>
</ head>
< body>
< div>
Hello
</ div>
</ body>
2.3 优先级
a. 基础选择器
同一个元素,指定了多个选择器,就会存在优先级的问题
< html lang = " en" >
< head>
< meta charset = " UTF-8" >
< title> Title</ title>
< style>
div {
color : red !important ;
}
.erick {
color : aqua;
}
</ style>
</ head>
< body>
< div class = " erick" >
Hello
</ div>
</ body>
</ html>
b. 复合选择器 – 权重叠加
< html lang = " en" >
< head>
< meta charset = " UTF-8" >
< title> Title</ title>
< style>
li {
color : red;
}
ul li {
color : green;
}
</ style>
</ head>
< body>
< ul>
< li> nihao</ li>
< li> nihao</ li>
</ ul>
</ body>
</ html>
三、盒子模型
先准备好相关的网页元素,网页元素基本都是盒子box 利用css设置好盒子样式,然后摆放到相应位置 给盒子里面填充内容
- css盒子模型本质是一个盒子,封装周围的html元素
- 包括:边框,外边距,内边距,实际内容
1. 边框border
div {
width : 500px;
height : 500px;
border-width : 10px;
border-style : dashed;
border-color : #ff6c37;
border-top : 3px solid black;
}
<! DOCTYPE html >
< html lang = " en" >
< head>
< meta charset = " UTF-8" >
< title> Title</ title>
< style>
table {
width : 500px;
height : 250px;
}
table,
td, th {
border : 1px solid red;
border-collapse : collapse;
font-size : 20px;
text-align : center;
}
</ style>
</ head>
< body>
< table>
< thead>
< tr>
< th> name</ th>
< th> address</ th>
< th> age</ th>
</ tr>
</ thead>
< tbody>
< tr>
< td> lucy</ td>
< td> shanxi</ td>
< td> 20</ td>
</ tr>
< tr>
< td> jack</ td>
< td> shanghai</ td>
< td> 40</ td>
</ tr>
</ tbody>
</ table>
</ body>
</ html>
边框会影响盒子的实际大小 测量时候,要注意实际盒子大小和边框大小
< head>
< meta charset = " UTF-8" >
< title> Title</ title>
< style>
div {
height : 200px;
width : 200px;
border : 200px green solid;
}
</ style>
</ head>
< body>
< div>
</ div>
</ body>
2. 内边距
盒子内容和盒子边的距离 内边距会影响盒子的大小,实际盒子的大小=盒子大小+内边距 一般为了保证做出来的效果图和样本一样,通过减小盒子的大小,加上内边距,加上外边框,从而等于效果图中的盒子大小
< head>
< meta charset = " UTF-8" >
< title> Title</ title>
< style>
div {
height : 200px;
width : 200px;
border : 20px green solid;
padding-left : 20px;
}
</ style>
</ head>
< body>
< div>
你好
</ div>
</ body>
案例:盒子里面字数不一样多,给盒子padding比较合理 如果盒子本身没有制定width/height,则此时padding不会撑开盒子大小
3. 外边距