博客列表 >常用选择器与布局原理2019-9-3作业

常用选择器与布局原理2019-9-3作业

霖的博客
霖的博客原创
2019年09月13日 00:27:29555浏览

相邻选择器与兄弟选择器异同

<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>选择器</title>
<link rel="stylesheet" href="Untitled-2.css">
</head>
<body>
<ul>
	<li>1</li>
	<li id="bg-blue">2</li>
	<li>3</li>
	<li id="bg-green">4</li>
	<li>5</li>
	<li>6</li>
	<li>7</li>
	<li>8</li>
	<li>9</li>
	<li>10</li>
</ul>
</body>
</html>

运行实例 »

点击 "运行实例" 按钮查看在线实例

对应上面的HTML的CSS

相邻选择器跟兄弟选择器同样是选中临近的元素

不同之处在于相邻选择器只是选中临近的后面一个元素

而兄弟选择器是选中临近的所有同级元素

ul {
    margin: 0;
    padding-left: 0;
    border: 1px dashed red;
}


ul li {
    list-style-type: none;
    width: 40px;
    height: 40px;
    background-color: wheat;
    /*border: 1px solid black;*/

    /*水平和垂直的居中*/
    text-align: center;
    line-height: 40px;

    border-radius: 50%;

    /*将一个块级元素转为内联元素*/
    display: inline-block;

    box-shadow: 2px 2px 1px #888;
}


#bg-blue + * {
	background-color:yellow;
}
/*相邻选择器*/

#bg-green ~ * {
	background-color:red;
}
/*兄弟选择器*/

运行实例 »

点击 "运行实例" 按钮查看在线实例

nth-child() 和 :nth-of-type()选择器的异同

同样是指定选择,不同的是nth-child()是按指定顺序选择,而nth-of-type()是按指定类型选择

ul {
    margin: 0;
    padding-left: 0;
    border: 1px dashed red;
}


ul li {
    list-style-type: none;
    width: 40px;
    height: 40px;
    background-color: wheat;
    /*border: 1px solid black;*/

    /*水平和垂直的居中*/
    text-align: center;
    line-height: 40px;

    border-radius: 50%;

    /*将一个块级元素转为内联元素*/
    display: inline-block;

    box-shadow: 2px 2px 1px #888;
}

ul :nth-child(6) {
    background-color: coral;
}

ul li:nth-of-type(5) {
    background-color: darkgreen;
}

运行实例 »

点击 "运行实例" 按钮查看在线实例

Padding对盒子的影响及解决方案

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <link rel="stylesheet" href="static/css/style3.css">
    <title>调皮的内边距padding</title>
</head>
<body>
<!--将图片显示在容器中间-->
<div class="box1">
    <img src="static/images/girl.jpg" alt="小姐姐" width="200">
</div>

<!--宽度分离-->
<div class="wrap">
    <div class="box2">
        <img src="static/images/girl.jpg" alt="小姐姐" width="200">
    </div>
</div>

<!--box-sizing-->
<div class="box3">
    <img src="static/images/girl.jpg" alt="小姐姐" width="200">

</div>
</body>
</html>

运行实例 »

点击 "运行实例" 按钮查看在线实例

Padding对盒子的影响及解决方案:

padding会撑开盒子的大小

解决方法1:padding边距设置后,后面追加一个宽度设置回图片的宽度

方法2:宽度分离:通过增加一个中间层实现宽度分离,以下代码box2为中间层

方法3:box-sizing:包含padding边距的总宽

.box1 {
    width: 300px;
    border: 1px solid black;
    background-color: lightgreen;
}

.box1 {
    padding: 50px;
    width: 200px;
}

/*宽度分离*/

.wrap {
    width: 300px;
}

.box2 {
    padding: 50px;
    background-color: lightblue;
    border: 1px solid black;
}

/*box-sizing*/
.box3 {
    width: 300px;
    box-sizing: border-box;
    padding: 50px;
    background-color: pink;
    border: 1px solid black;
}

运行实例 »

点击 "运行实例" 按钮查看在线实例

同级塌陷

<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>外边距marubg</title>
<link rel="stylesheet" href="Untitled-2.css">
</head>
<body>
<div class="box1"></div>
<div class="box2"></div>
</body>
</html>

运行实例 »

点击 "运行实例" 按钮查看在线实例

同级塌陷

第二个盒子box2的上外边距40px陷入到了第一个盒子box1的下外边距50px里面了,所有两个的相距只有50px

谁大以谁为准,需垂直方向,两个盒子同级排列

.box1{
	width:100px;
	height:100px;
	background:lightblue;
}

.box2{
	width:100px;
	height:100px;
	background:lightcoral;
}

.box1{
	margin-bottom:50px;
}

.box2{
	margin-top:40px;
}

运行实例 »

点击 "运行实例" 按钮查看在线实例

嵌套传递

<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>外边距marubg</title>
<link rel="stylesheet" href="Untitled-2.css">
</head>
<body>
<div class="box3">
	<div class="box4"></div>
</div>

</body>
</html>

运行实例 »

点击 "运行实例" 按钮查看在线实例

嵌套传递

两个块级元素他们成嵌套关系的时候,子元素的margin会传递到父级元素

解决方法:设置父级元素的上内边距

.box3{
        box-sizing:border-box
	width:100px;
	height:100px;
	background:lightblue;
}

.box4{
	width:100px;
	height:100px;
	background:lightcoral;
}

.box3{
	padding-top:50px;
}

运行实例 »

点击 "运行实例" 按钮查看在线实例

自动挤压

<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>外边距marubg</title>
<link rel="stylesheet" href="Untitled-2.css">
</head>
<body>
<div class="box5"></div>
</body>
</html>

运行实例 »

点击 "运行实例" 按钮查看在线实例

自动挤压

当盒子的外边距上上右边下左设置为auto的时候,自动挤压,挤压到中间

.box5{
	width:150px;
	height:150px;
	background:lightblue;
}

.box5{
	margin:auto;
}

运行实例 »

点击 "运行实例" 按钮查看在线实例


声明:本文内容转载自脚本之家,由网友自发贡献,版权归原作者所有,如您发现涉嫌抄袭侵权,请联系admin@php.cn 核实处理。
全部评论
文明上网理性发言,请遵守新闻评论服务协议