Blogger Information
Blog 4
fans 0
comment 0
visits 2453
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
常用选择器与布局原理2019-9-3作业
霖的博客
Original
556 people have browsed it

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

<!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;
}

运行实例 »

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


Correction status:qualified

Teacher's comments:padding,margin的影响 , 通过 box-sizing, flex都可以解决, 后面的课程 和作业 赶紧喽
Statement of this Website
The copyright of this blog article belongs to the blogger. Please specify the address when reprinting! If there is any infringement or violation of the law, please contact admin@php.cn Report processing!
All comments Speak rationally on civilized internet, please comply with News Comment Service Agreement
0 comments
Author's latest blog post