一、选择器
作用:选择页面上的某一个后者某一类元素
基本选择器
1.标签选择器
格式:标签{}
<h1>666</h1>
<style>
h1{
css语法
}
</style>
2.类选择器
格式:.类名{}
<h1 class="name">666</h1>
<style>
.name{
css语法
}
</style>
3.id选择器
格式:#名称{}
<h1 id="name">666</h1>
<style>
#name{
css语法
}
</style>
高级选择器(只说一个id+class
组合)
格式:id
<style>
.demo a{
float: left;
display: block;
height: 50px;
width: 50px;
border-radius: 10px;
background: aquamarine;
text-align: center;
color: gray;
text-decoration: none;
margin-right: 5px;
line-height:50px;
font: bold 20px/50px Arial;
}
/*
属性名,属性名 = 属性值(正则)
= 表示绝对等于
*= 表示包含
^= 表示以...开头
$= 表示以...结尾
存在id属性的元素
a[]{}
*/
a[id]{
/*
a标签使用id的元素
*/
background: deeppink;
}
a[id=first]{
/*
id=first的元素
*/
background: greenyellow;
}
a[class*="links"]{
/*
class 中有links的元素
*/
background: green;
}
a[href^=http]{
/*
选中href中以http开头的元素
*/
background: aquamarine;
}
a[href$=pdf]{
/*
选中href中以http开头的元素
*/
background: aquamarine;
}
</style>
<p class="demo">
<a href="https://www.taobao.com/" class="links item first" id="first">淘宝</a>
<a href="" class="links item active" target="_blank " title="test">链接</a>
<a href="img/hello.html" class="links item">网页</a>
<a href="img/str1.png" class="links item">png</a>
<a href="img/str2.jpg" class="links item">jpg</a>
<a href="abc" class="links item">链2</a>
<a href="/fy.pdf" class="links item">pdf</a>
<a href="/quit.pdf" class="links item">pdf2</a>
<a href="dump.doc" class="links item">doc</a>
<a href="kiko.doc" class="links item last">doc2</a>
</p>
二、美化
1.字体 font
- font-family:字体
- font-size:字体大小
- font-weight:字体粗细
- color:字体颜色
2.文本样式 text
- 文本对齐方式:
text-align:center
- 首行缩进:
text-indent:2em
- 行高:
line-height:300px
- 下划线:
text-decoration
- text-decoration:underline /下划线/
- text-decoration:line-through /中划线/
- text-decoration:overline /上划线/
- text-decoration:none /超链接去下划线/
- 图片、文字水平对齐 (行内元素对齐)
img,span{
vertical-align: middle;
}
6.文本阴影
<style>
h1 {
text-shadow: 2px 2px 5px red;
}
</style>
<h1>文本阴影效果!</h1>
3.超链接伪类
<style>
/*超链接有默认的颜色*/
a{
text-decoration: hotpink;
color: #000000;
}
/*鼠标悬浮的状态*/
a:hover{
color: dodgerblue;
}
/*鼠标按住未释放的状态*/
a:active{
color:green
}
/*点击之后的状态*/
a:visited{
color:mediumpurple;
}
</style>
列表 ui li
有序 ui li
无序 ol li
list-style-type: circle
list-style-type: square
list-style-type: upper-roman
list-style-type: lower-alpha
背景
1.背景颜色 background-color
2.透明度 opacity
3.背景图片 background-image: url("name.jpg")
三、布局
布局三大核心:盒子模型、浮动、定位
1.元素的显示模式
1.块元素(block)
又称:块级元素 特点:
- 在页面中独占一行,不会与任何元素共用一行,是从上到下排列的。
- 默认宽度:撑满父元素。
- 默认高度:由内容撑开。
- 可以通过 CSS 设置宽高。
- 主体结构标签:
<html> 、 <body>
- 排版标签:
<h1> ~ <h6> 、 <hr> 、 <p> 、 <pre> 、 <div>
- 列表标签:
<ul> 、 <ol> 、 <li> 、 <dl> 、 <dt> 、 <dd>
- 表格相关标签:
<table> 、 <tbody> 、 <thead> 、 <tfoot> 、 <tr> 、 <caption>
<form> 与 <option>
2.行内元素(inline)
又称:内联元素 特点:
- 在页面中不独占一行,一行中不能容纳下的行内元素,会在下一行继续从左到右排 列。
- 默认宽度:由内容撑开。
- 默认高度:由内容撑开。
- 无法通过 CSS 设置宽高。
- 文本标签:
<br> 、 <em> 、 <strong> 、 <sup> 、 <sub> 、 <del> 、 <ins>
<a>
、<label>
、<span>
、<input>
3.行内块元素(inline-block)
又称:内联块元素 特点:
- 在页面中不独占一行,一行中不能容纳下的行内元素,会在下一行继续从左到右排 列。
- 默认宽度:由内容撑开。
- 默认高度:由内容撑开。
- 可以通过 CSS 设置宽高。
- 图片:
<img>
- 单元格:
<td> 、 <th>
- 表单控件:
<input> 、 <textarea> 、 <select> 、 <button>
- 框架标签:
<iframe>
2.盒子模型
网页布局过程:
- 先准备好相关的网页元素,网页元素基本都是盒子 Box 。
- 利用 CSS 设置好盒子样式,然后摆放到相应位置。 (难点)
- 往盒子里面装内容
3.盒子模型(Box Model)组成
1.边框
border : border-width || border-style || border-color;
边框样式 border-style 可以设置如下值:
- none:没有边框即忽略所有边框的宽度(默认值)
- solid:边框为单实线(最为常用的)
- dashed:边框为虚线
- dotted:边框为点线
2.内边距(padding)
和写属性
分写属性
3.外边距(margin)
margin 注意事项:
- 子元素的 margin ,是参考父元素的 content 计算的。(因为是父亲的 content 中承装着 子元素)
- 上 margin 、左 margin :影响自己的位置;下 margin 、右 margin :影响后面兄弟元素 的位置。
- 块级元素、行内块元素,均可以完美地设置四个方向的 margin ;但行内元素,左右 margin 可以完美设置,上下 margin 设置无效。
- margin 的值也可以是 auto ,如果给一个块级元素设置左右 margin 都为 auto ,该块级 元素会在父元素中水平居中。
- margin 的值可以是负值
4.处理内容溢出
注意:
- overflow-x 、 overflow-y 不能一个是 hidden ,一个是 visible ,是实验性属性,不 建议使用。
- overflow 常用的值是 hidden 和 auto ,除了能处理溢出的显示方式,还可以解决很多 疑难杂症。
5.布局小技巧(重点)
- 行内元素、行内块元素,可以被父元素当做文本处理。
即:可以像处理文本对齐一样,去处理:行内、行内块在父元素中的对齐。
例如:text-align
、line-height
、text-indent
等。
- 如何让子元素,在父亲中 水平居中:
若子元素为块元素,给父元素加上:
margin:0 auto
若子元素为行内元素、行内块元素,给父元素加上:text-align:center
- 如何让子元素,在父亲中 垂直居中:
若子元素为块元素,给子元素加上: margin-top ,值为:(父元素 content -子元素盒子 总高) / 2。
若子元素为行内元素、行内块元素: 让父元素的 height = line-height ,每个子元素都加上: vertica
四、浮动 float
1.简介
在最初,浮动是用来实现文字环绕图片效果的,现在浮动是主流的页面布局方式之一。
2.元素浮动后的特点
- 🤢脱离文档流。
- 😊不管浮动前是什么元素,浮动后:默认宽与高都是被内容撑开(尽可能小),而且可以设置宽
高。 - 😊不会独占一行,可以与其他元素共用一行。
- 😊不会 margin 合并,也不会 margin 塌陷,能够完美的设置四个方向的 margin 和 padding 。
- 😊不会像行内块一样被当做文本处理(没有行内块的空白问题)。
3.解决浮动产生的影响
3.1元素浮动后会有哪些影响
对兄弟元素的影响: 后面的兄弟元素,会占据浮动元素之前的位置,在浮动元素的下面;对前面的兄弟 无影响。
对父元素的影响: 不能撑起父元素的高度,导致父元素高度塌陷;但父元素的宽度依然束缚浮动的元素。
3.2 解决浮动产生的影响(清除浮动)
解决方案:
- 方案一: 给父元素指定高度。
- 方案二: 给父元素也设置浮动,带来其他影响。
- 方案三: 给父元素设置 overflow:hidden 。
- 方案四: 在所有浮动元素的最后面,添加一个块级元素,并给该块级元素设置 clear:both 。
- 方案五: 给浮动元素的父元素,设置伪元素,通过伪元素清除浮动,原理与方案四相同。===> 推
荐使用
.parent::after {
content: "";
display: block;
clear:both;
}
布局中的一个原则:设置浮动的时候,兄弟元素要么全都浮动,要么全都不浮动。