博客列表 >css之选择器进阶(相邻,兄弟,伪类),padding&margin的妙用--2019.09.03

css之选择器进阶(相邻,兄弟,伪类),padding&margin的妙用--2019.09.03

Morning   Star的博客
Morning Star的博客原创
2019年09月08日 00:36:461094浏览

相邻选择器与兄选择器:

源码:

<ul>
        <li class="bg-green">1</li>
        <li id="bg-blue">2</li>
        <li>3</li>
        <li>4</li>
        <li>5</li>
        <li class="bg-green">6</li>
        <li>7</li>
        <li>8</li>
        <li class="bg-green">9</li>
        <li>10</li>
    </ul>

css源码(相邻)+图

#bg-blue + * {
    background-color: yellow;
}

1567794542(1).jpg

css源码(兄弟)+图

#bg-blue ~ * {
    background-color: yellow;
}

1567794606(1).jpg

伪类选择器

css源码(子元素+类型)+图:

ul li:first-of-type {
    background-color: darkorange;
    color: white;
}
ul li:last-of-type {
    background-color: darkorange;
    color: white;
}
ul li:nth-of-type(5) {
    background-color: darkgreen;
    color: white;
}
div :nth-child(2) {
    background-color: darkgreen;
}
div:nth-of-type(3) :nth-child(1) {
    background-color: yellow;
}

p:nth-of-type(2) {
    background-color: red;
}

2PC8R74D94FY1G11U`O8~Q8.png

padding的有趣实验

图例:CZMF}2L36GTZZDM0KAX~M1X.png

html:

<!-- 图片居中效果 -->
    <div class="box1">
        <img src="static/images/girl.jpg" alt="小姐姐" width="200px">
    </div>
    <!-- 宽度分离 -->
    <body>
        <div class="wrap">
            <div class="box2">
                <img src="static/images/girl.jpg" alt="小姐姐" width="200px" height="200px">
            </div>
        </div>
        <!-- box-sizing  -->
        <div class="box3">
            <img src="static/images/girl.jpg" alt="小姐姐" width="200px" height="200px">
        </div>

css:

.box1 {
    width: 300px;
    border: 1px solid black;
    background-color: lightgreen;
}
/* 通过修改width实现 */
.box1 {
    padding: 50px;
    width: 200px;
}
/* 宽度分离 */
.wrap {
    width: 300px;
    height: 300px;
}
.box2 {
    background-color: lightblue;
    border: 1px solid black;
    padding: 50px;
}
/* box-sizing */
.box3 {
    width: 300px;
    padding: 50px;
    box-sizing: border-box;
    background-color: lightpink;
    border: 1px solid black;
}

margin有趣的实验:

同级塌陷:

配图:


css代码:

.box1 {
    width: 100px;
    height: 100px;
    background-color: lightblue;
    margin-bottom: 50px;
}
.box2 {
    width: 100px;
    height: 100px;
    background-color: lightcoral;
    margin-top: 30px;
}

嵌套传递:

配图:1567871625(1).jpg

css:

.box3 {
    width: 200px;
    height: 200px;
    background-color: lightblue;
}

.box4 {
    width: 100px;
    height: 100px;
    background-color: lightcoral;
    margin-top: 50px;
}
解决方案1:
.box3{
padding-top:50px;
height:150px;
}
解决方案2:
.box3{
padding-top:50px;
box-sizing:border-box;
}

自动挤压:

配图:

1567871672(1).jpg

css:

.box5 {
    width: 150px;
    height: 150px;
    background-color: chartreuse;
    margin: auto;
}

总结:

ul有的padding-left有默认值 40  ,设为0后会倒是li里的默认点号看不到  所以要取消点号,必须要在li下加list-style-type:none,取消前缀。当前元素的高度与当前文本高度一致,实现文本的垂直居中,水平居中:text-align(排列):center(文本的居中)。

border-radius(边界半径)圆行:50%

box-shadow: x轴 y轴 扩散范围 颜色 insert(内部阴影)

eg:1.box-shadow: 0 0 10px #f00( 向四周都扩散10px)。2.box-shadow:-4px -4px 10px #f00:{X轴与Y轴改变成了负值(负值 向左 向上)}。

选择器:

属性选择器:li[id="bg-blue"]{} 选择li下id为bg-blue的。群组选择器:层级必须是一样的,#bg-blue, .bg-green {}。

相邻选择器:#bg-blue + *  +表示当前元素紧紧挨着的(next) *表示所有元素。兄弟选择器:#bg-blue ~ *  表示当前元素后面的所有元素。 

*************************************************************************************************************************

伪类选择器(子元素+类型)

子元素选择器(nth-child)侧重位置,而类型选择器(nth-of-type)关注位置和类型。注意:类型选择器的冒号(:)前面不能有空格。两个选择器可以混合使用:div:nth-of-type(3) :nth-child(1){    background-color: yellow;}

同级塌陷:margin大的会将小的吞噬,嵌套传递的解决方案:在父级元素的padding中修改 并修改height 或者用异盒模型box-sizing。自动挤压:margin在没有给予相应的时,浏览器会在相应的方向流出足够的空间。

在引入图片的时候 ,图片的高度会根据设置的宽度自适应的。



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