day4 css布局相关属性
一、伪类选择器
<!--
1. 伪类选择器
普通选择器选中的是标签,伪类选择器选中的是标签的状态
css语法:普通选择器{属性:属性值;}、伪类选择器{属性:属性值;}
2. 伪类选择器语法:
普通选择器:状态{}
3. 常用状态
hover - 鼠标悬停(鼠标在标签上的时候对应的状态),针对所有标签有效
active - 鼠标在标签上按下,针对所有标签有效
link - 超链接链接未访问状态,只针对a标签有效
visited - 超链接已经访问后对应的状态,只针对a标签有效
爱(LoVe)恨(HAte)原则:如果同一个a标签要同时设置上面四种状态的样式,需要遵守爱恨原则,否则有些样式可能无效
-->
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title></title>
<style type="text/css">
a{
color: #999999;
font-size: 12px;
/* 去掉a标签自带的下划线 */
text-decoration: none;
}
#a1:hover{ /*鼠标悬停*/
color: crimson;
/* 添加下划线 */
text-decoration: underline;
}
#a1:active{
color: green;
}
div{
width: 200px;
height: 100px;
background-color: #E5E5E5;
}
#div0>p{
color: rgb(101,132,79);
font-weight: 800;
}
#div0>span{
color: rgb(90,90,90);
font-size: 12px;
font-weight: 700;
}
#div0:hover{
background-color: #dddddd;
/* 将光标变成手指 */
cursor: pointer;
}
</style>
</head>
<body>
<a id="a1" href="https://wj-dongjian.jd.com/q/61a05143f2ec2b00b35e40a6">登录页面,调查问卷</a>
<a href="">百度</a>
<div id="div0">
<p>【学习HTML5】</p>
<img src="img/Unknown" >
<span>HTML5是下一代HTML标准</span>
</div>
</body>
</html>
二、常用状态补充
<!-- 小说的章节目录,没有访问是一种颜色,访问后是另外一种颜色 -->
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title></title>
<style type="text/css">
#div1>a:link{
color: #DC143C;
}
#div1>a:visited{
color: #008000;
}
</style>
</head>
<body>
<div id="div1">
<a href="https://www.baidu.com">第一章</a>
<a href="https://www.jd.com">第二章</a>
<a href="https://www.51job.com">第三章</a>
</div>
</body>
</html>
三、标准流布局
<!--
1.标准流
标签在没有添加布局相关属性的时候,默认的布局方式就是标准流布局。
2.标准流布局的基本原则
在标准流中,根据标签表现方式的不同,将标签分为三种:块级标签、行内标签、行内块标签
1)块级标签:一个占一行;设置宽高有效;默认宽度是父标签的宽度,默认高度是内容的高度。
例如:h1~h6、p、div、ul、li、...
2)行内标签:一行可以有多个;设置宽高无效;默认宽度是内容的宽度,默认高度是内容的高度。
例如:a、span、b、i、label
3)行内块标签:一行可以有多个;设置宽高有效;默认宽度是内容的宽度,默认高度是内容的高度。
例如:img
-->
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title></title>
</head>
<body>
<!-- 1.块级标签 -->
<h1 style="background-color: lightblue; width: 200px; height: 70px;">我是标题1</h1>
<h1>我是标题1</h1>
<p style="background-color: lightgoldenrodyellow; width: 300px; height: 100px;">我是段落1</p>
<p>我是段落1</p>
<div style="background-color: khaki;">
我是div1
</div>
<div>
我是div2
</div>
<!-- 2.行内标签 -->
<a href="" style="background-color: skyblue; width: 300px; height: 100px;">我是超链接1</a>
<a href="" style="background-color: salmon;">超链接2</a>
<!-- 3.行内块 -->
<img src="img/b.png" style="width: 300px;">
<img src="img/b.png" style="">
</body>
</html>
四display属性
<!-- 1.display属性
在标准流中,可以通过修改display属性值来改变标签的性质
inline: 行内
inline-block: 行内块
block: 块
none: 隐藏标签
-->
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title></title>
</head>
<body>
<p style="background-color: lightblue; display: inline; width: 200px;">我是段落1</p>
<p style="background-color: lightcoral; display: inline-block; width:200px;">我是段落2</p>
<a style="background-color: hotpink; width: 200px; display: block;">我是超链接1</a>
<a href="">我是超链接2</a>
<a id="a1" href="" style="display: none;">我是超链接3</a>
<a href="">我是超链接4</a>
<br><br>
<button type="button" onclick="show()">显示</button>
<script type="text/javascript">
function show(){
a1 = document.getElementById('a1')
a1.style.display = 'inline'
}
</script>
</body>
</html>
五、脱流
<!--
1.脱流 - 脱离标准流布局
标签一旦脱流,所有的标签的表现方式都和行内块一样:一行可以显示多个;设置宽高有效;默认大小是内容大小
2.脱流的方法
1)浮动
2)定位
-->
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title></title>
</head>
<body>
<div id="div0">
我是div1
</div>
<div id="div1" style="background-color: lavender;">
我是div2
</div>
<style type="text/css">
div{
background-color: sandybrown;
/* width: 300px;
height: 200px; */
/* float: right; */
}
#div0{
position: fixed;
left: 100px;
width: 200px;
}
#div1{
position: fixed;
left: 100px;
top: 100px;
}
</style>
</body>
</html>
六 浮动
<!--
1. 浮动的应用场景
1)让竖着显示的标签横着来
2) 文字环绕
2.浮动: float属性
left - 左浮动
right - 右浮动
-->
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title></title>
</head>
<body>
<!-- 1. 浮动基本功能1 - 左浮动 -->
<!-- <div id="box1">
<div id="div1" style="background-color: #008000; width: 150px; height: 80px;"></div>
<div id="div2" style="background-color: gold; width: 150px; height: 80px;"></div>
</div>
<style type="text/css">
#box1>div{
float: left;
}
</style> -->
<!-- 2. 浮动基本功能2 - 右浮动 -->
<!-- <div id="box1">
<div id="div1" style="background-color: #008000; width: 150px; height: 80px;"></div>
<div id="div2" style="background-color: gold; width: 150px; height: 80px;"></div>
</div>
<style type="text/css">
#box1>div{
float: right;
}
</style> -->
<!-- 3. 浮动基本功能3 - 高度塌陷 -->
<!-- <div id="box1">
<div id="div1" style="background-color: #008000; width: 150px; height: 80px;"></div>
<div id="div2" style="background-color: gold; width: 200px; height: 80px;"></div>
</div>
<style type="text/css">
#div1{
float: left;
}
</style> -->
<div id="div1" style="background-color: red; width: 100px; height: 100px;"></div>
<div id="div2" style="background-color: green; width: 200px; height: 150px;"></div>
<div id="div3" style="background-color: blue; width: 200px; height: 150px;"></div>
<a style="display: inline-block; width: 200px; height: 100px; background-color: yellow;"></a>
</div>
<style type="text/css">
#div2{
float: left;
}
</style>
</body>
</html>
七、页面整体布局
<!--
1. 浮动的应用场景
1)让竖着显示的标签横着来
2) 文字环绕
2.浮动: float属性
left - 左浮动
right - 右浮动
-->
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title></title>
</head>
<body>
<!-- 1. 浮动基本功能1 - 左浮动 -->
<!-- <div id="box1">
<div id="div1" style="background-color: #008000; width: 150px; height: 80px;"></div>
<div id="div2" style="background-color: gold; width: 150px; height: 80px;"></div>
</div>
<style type="text/css">
#box1>div{
float: left;
}
</style> -->
<!-- 2. 浮动基本功能2 - 右浮动 -->
<!-- <div id="box1">
<div id="div1" style="background-color: #008000; width: 150px; height: 80px;"></div>
<div id="div2" style="background-color: gold; width: 150px; height: 80px;"></div>
</div>
<style type="text/css">
#box1>div{
float: right;
}
</style> -->
<!-- 3. 浮动基本功能3 - 高度塌陷 -->
<!-- <div id="box1">
<div id="div1" style="background-color: #008000; width: 150px; height: 80px;"></div>
<div id="div2" style="background-color: gold; width: 200px; height: 80px;"></div>
</div>
<style type="text/css">
#div1{
float: left;
}
</style> -->
<div id="div1" style="background-color: red; width: 100px; height: 100px;"></div>
<div id="div2" style="background-color: green; width: 200px; height: 150px;"></div>
<div id="div3" style="background-color: blue; width: 200px; height: 150px;"></div>
<a style="display: inline-block; width: 200px; height: 100px; background-color: yellow;"></a>
</div>
<style type="text/css">
#div2{
float: left;
}
</style>
</body>
</html>
八、文字环绕
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title></title>
</head>
<body>
<!-- 文字环绕:被环绕的标签浮动,提供文字内容的标签不浮动 -->
<div id="content" style="float: left;">
<img src="./img/qingwa.png" >
</div>
<div id="text">
<a href="">超链接1</a>
<a href="">超链接1</a>
<a href="">超链接1</a>
<a href="">超链接1</a>
<a href="">超链接1</a>
<a href="">超链接1</a>
<a href="">超链接1</a>
<a href="">超链接1</a>
<a href="">超链接1</a>
<a href="">超链接1</a>
<a href="">超链接1</a>
<a href="">超链接1</a>
<a href="">超链接1</a>
<a href="">超链接1</a>
<a href="">超链接1</a>
<a href="">超链接1</a>
<a href="">超链接1</a>
<a href="">超链接1</a>
<a href="">超链接1</a>
<a href="">超链接1</a>
<a href="">超链接1</a>
<a href="">超链接1</a>
<a href="">超链接1</a>
<a href="">超链接1</a>
<a href="">超链接1</a>
<a href="">超链接1</a>
<a href="">超链接1</a>
<a href="">超链接1</a>
<a href="">超链接1</a>
<a href="">超链接1</a>
<a href="">超链接1</a>
<a href="">超链接1</a>
<a href="">超链接1</a>
<a href="">超链接1</a>
<a href="">超链接1</a>
<a href="">超链接1</a>
<a href="">超链接1</a>
<a href="">超链接1</a>
<a href="">超链接1</a>
<a href="">超链接1</a>
<a href="">超链接1</a>
<a href="">超链接1</a>
<a href="">超链接1</a>
<a href="">超链接1</a>
<a href="">超链接1</a>
<a href="">超链接1</a>
<a href="">超链接1</a>
<a href="">超链接1</a>
<a href="">超链接1</a>
<a href="">超链接1</a>
<a href="">超链接1</a>
<a href="">超链接1</a>
<a href="">超链接1</a>
<a href="">超链接1</a>
<a href="">超链接1</a>
<a href="">超链接1</a>
<a href="">超链接1</a>
<a href="">超链接1</a>
<a href="">超链接1</a>
<a href="">超链接1</a>
<a href="">超链接1</a>
<a href="">超链接1</a>
<a href="">超链接1</a>
<a href="">超链接1</a>
<a href="">超链接1</a>
<a href="">超链接1</a>
<a href="">超链接1</a>
<a href="">超链接1</a>
<a href="">超链接1</a>
<a href="">超链接1</a>
<a href="">超链接1</a>
<a href="">超链接1</a>
<a href="">超链接1</a>
<a href="">超链接1</a>
<a href="">超链接1</a>
<a href="">超链接1</a>
<a href="">超链接1</a>
<a href="">超链接1</a>
<a href="">超链接1</a>
<a href="">超链接1</a>
<a href="">超链接1</a>
<a href="">超链接1</a>
<a href="">超链接1</a>
<a href="">超链接1</a>
<a href="">超链接1</a>
<a href="">超链接1</a>
<a href="">超链接1</a>
<a href="">超链接1</a>
<a href="">超链接1</a>
<a href="">超链接1</a>
<a href="">超链接1</a>
<a href="">超链接1</a>
<a href="">超链接1</a>
<a href="">超链接1</a>
<a href="">超链接1</a>
<a href="">超链接1</a>
<a href="">超链接1</a>
<a href="">超链接1</a>
<a href="">超链接1</a>
<a href="">超链接1</a>
<a href="">超链接1</a>
<a href="">超链接1</a>
<a href="">超链接1</a>
<a href="">超链接1</a>
<a href="">超链接1</a>
<a href="">超链接1</a>
<a href="">超链接1</a>
<a href="">超链接1</a>
<a href="">超链接1</a>
<a href="">超链接1</a>
<a href="">超链接1</a>
<a href="">超链接1</a>
<a href="">超链接1</a>
<a href="">超链接1</a>
<a href="">超链接1</a>
<a href="">超链接1</a>
<a href="">超链接1</a>
<a href="">超链接1</a>
<a href="">超链接1</a>
<a href="">超链接1</a>
<a href="">超链接1</a>
<a href="">超链接1</a>
<a href="">超链接1</a>
<a href="">超链接1</a>
<a href="">超链接1</a>
<a href="">超链接1</a>
</div>
</body>
</html>
九、定位
<!-- 1.定位 - 通过设置间距来达到定位的目的
定位相关属性有两类:
1)选择参考对象:position
absolute(寻找参考对象) - 将第一个position的值不为默认值(initial/static)的父标签作为距离的参考对象. 绝对定位,不占据原来的位子
relative(让自己成为参考对象) - 相对自己在标准流中的位置定位;一般设置relative是为了让自己有能力成为子标签的参考对象
相对定位,占据原来的位置
fixed - 相对浏览器定位
2)设置距离:left、right、top、bottom
-->
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title></title>
<style type="text/css">
#div2{
position: relative;
}
#div1{
position: absolute;
right: 50px;
}
#div4{
position: fixed;
right: 10px;
bottom: 10px;
}
</style>
</head>
<body>
<div id="div3" style="background-color: red; width: 800px; height: 2800px; position: relative;">
<div id="div2" style="background-color: blue; width: 400px; height: 440px; position: relative;">
<div id="div1" style="background-color: yellow; width: 100px; height: 40px;"></div>
</div>
</div>
<div id="div4" style="background-color: deeppink; width: 100px; height: 60px;">
</div>
</body>
</html>
十盒子模型
<!--
1. 盒子模型
任何一个可见的标签都是由三个部分组成:content(内容)、padding(内边距)、margin(外边距)
1)content - 设置标签的宽度和高度只影响内容大小;标签的内容和子标签都是显示在内容部分的
2)padding - 有四个方向;是可见的;设置背景会同时作用域padding、content
3)margin - 有四个方向;不可见,但是占位置
-->
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title></title>
<style type="text/css">
#div1{
/* 1.四个方向的内边距一起设置 */
padding: 10px;
}
input{
background: url(./img/b.png) no-repeat 0 center rgba(0,0,0,0);
/* 2.单独设置四个方向的内边距 */
padding-left: 30px;
padding-top: 10px;
padding-bottom: 10px;
/* 3.四个方向的外边距一起设置 */
/* margin: 50px; */
/* 4.单独设置四个方向的外边距 */
margin-top: 50px;
}
</style>
</head>
<body>
<div id="div1" style="width: 100px; height: 60px; background-color: #DC143C;">
你好!水电费卡就好客家话
</div>
<input type="" name="" id="" value=""/>
<a href="">我是超链接</a>
</body>
</html>