博主信息
博文 4
粉丝 0
评论 0
访问量 3178
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
常用选择器与布局原理2019-9-3作业
霖的博客
原创
727人浏览过

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

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

运行实例 »

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


批改状态:合格

老师批语:padding,margin的影响 , 通过 box-sizing, flex都可以解决, 后面的课程 和作业 赶紧喽
本博文版权归博主所有,转载请注明地址!如有侵权、违法,请联系admin@php.cn举报处理!
全部评论 文明上网理性发言,请遵守新闻评论服务协议
0条评论
作者最新博文
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号

  • 登录PHP中文网,和优秀的人一起学习!
    全站2000+教程免费学