CSS选择器

时间:2021-06-19 12:34:06   收藏:0   阅读:11

详细的选择器

CSS盒子模型

内外边距

行内元素

span {
    border : 1px solid blue;
    padding : 10px 20px;
    font-size : 15px;
    line-height : 37px;/* 1px + 10px + 15px + 10px + 1px*/
}

块级元素

块级元素在内外边距设置时会产生边界坍塌或者边界重叠的现象,具体来说有以下两种情况:

<style>
    div {
        width : 100px;
        height : 100px;
    }
    .d1 {
        margin : 100px;
    }
    .d2 {
        margin : 150px;/*上下DIV的实际距离是150px*/
    }
</style>
<div class="d1">
    上面的DIV
</div>
<div class="d2">
    下面的DIV
</div>

浮动属性

浮动是css中实现布局的一个重要工具。基本上在页面排版时都要借助于浮动来完成,一个最基本的需求是实现块级元素和行内元素之间的混排,而浮动就是为了解决这些问题的。

浮动就是让一个元素往左或右边“尽量挤靠”,以使其周边文字(行内元素)可以围绕该浮动元素显示。

其典型的表现就是一张图片向左对齐(align=”left”)的时候,图片标签前后的文字都能够绕着图片展示。

这是“浮动”的原本含义和作用,如下图所示:在介绍浮动之前 我们可能已经发现一个问题,块状元素尽管设置了高和宽的属性 但是他总是占据一整行,这样的“造型”会产生大量旁白,显然不是我们希望遇见的,浮动的出现就可以改变这种现状。

float属性的几个可选值:

<style>
    .container {
        border : 5px solid gray;
    }
    .container div {
        width : 100px;
        height  100px;
        float : right;
    }
    .d1 {background : pink}
    .d2 {background : green}
    .d3 {background : blue}
</style>
<div class="container">
    <div class="d1">
        d1
    </div>
    <div class="d2">
        d2
    </div>
    <div class="d3">
        d3
    </div>
</div>

浮动机制

<style>
    .container {
        border: 5px solid gray;
    }
    .container div {
        width: 100px;
        height: 100px;
        background: pink;
        /*行内元素some text的空间被挤占,但块级p标签不会*/
        float: left;
    }
</style>
<div class="container">
    <p>hello world</p>
    <div></div> some text
</div>

案例演示

<style>
div {
	 border:1px solid white;
	 width:100px;
	 height:100px;
}
.d1 {
	 background:red; 
}
    
.d2 {
	background:green; 
}
.d3 {
	background:blue; 
}
.fl {
    float : left;
}
</style>
previous line
<div class="d1 fl"></div>
<div class="d2 fl"></div>
<div class="d3 fl"></div>
next line
  1. 将上例中的d2进行左浮动之后的效果怎样
  2. 将上例中的d1、d2同时进行左浮动之后的效果 怎样
  3. 将上例中的d1、d2、d3全部左浮动之后的效果 怎样
  4. 给上列中文本分别嵌套p标签,观察效果是否发生变化

浮动特性

浮动之后的元素无论其原先是何种状态,浮动后都会成为行内块状(inline-block)元素。所谓行内块状是指它具有块状元素的高和宽属性 但是不占据整行 ,可以在行内显示 img就是一个典型的行内块状元素。

<style>
    span {
        border : 1px solid blue;
        width : 100px;
        height : 100px;
        float : left;	/*设置浮动后 span具有高宽属性*/
    }
</style>
<span>some text</span>hello world
<style>
    div {
        border : 1px solid blue;
        float : left;	/*浮动之后 div不在整行显示*/
	}
</style>
<div>some text</div>hello world

使用display属性可以设置元素的类型,它有以下几种情况:

容器塌陷

元素浮动后脱离了普通文档流,“包含框”的内容(元素)会越来越少,导致包含框在文档流中占据的空间越来越小,尤其当包含框中所有元素都浮动后,整个“框”会出现塌陷。这样从视觉效果来说是很不友好的,同时它会影响后续元素的排版。

清除浮动

若要使得包含框重新包含浮动框,我们可以在包含框中添加一个不浮动的空元素,如DIV,设置它的高度或者上外边距和浮动元素的高度一致,重新“撑起”包含框:

<div class="container">
    <div class="d1">d1</div>
    <div class="d2">d2</div>
    <div class="d3">d3</div>
    <!-- 新建一个空DIV 通过设置高度将容器撑起来 -->
    <div></div>
</div>

通过增加上外边距或高度的办法可以帮助我们解决坍塌,但前提是必须掌握好浮动元素的最大高度。CSS为我们提供了一个解决坍塌的办法,就是清除浮动(clear)。使用属性clear,有常见的3个值:

所谓清除浮动,其实就是让包含框中的浮动特性终止(结束) 而浮动框不受影响。这样包含框就具有了正常的高度,可以正常包住其内部的浮动盒子。可以给包含框内部的末尾添加一个“清除浮动”的空的块盒子来清除浮动。

一个更加灵活的写法是使用伪元素选择器给在父盒子最后位置创建空元素,空元素必须声明为块级类型,然后设置清除浮动。

<style>
    .container::after {
        content : "";
        display : block;
        clear : both;
    }
</style>
<div class="container">
    <div>浮动元素1</div>
    <div>浮动元素2</div>
    <div>浮动元素3</div>
</div>

最后一种解决塌陷的办法是使用overflow 溢出控制,当父元素的高height:auto时(也就是不设置),我们使用overflow:hidden清除浮动(原理是Block Fomatter Context)。当一个盒子里面有浮动元素,则:

  1. 如果该盒子不设置高度,就应该清除浮动,overflow:hidden。
  2. 如果该盒子设置了高度,此时就应该考虑溢出时的处理效果!

overflow常用值有:

此时,虽然可能超出外层盒子,但不会影响外层盒子后续的位置(布局)。

visibility

visibility属性用来设置元素的可见性。主要有两个值:visible(可见)和hidden(隐藏)

设置visibility为hidden,虽然元素不可见了,但元素原本所占的空间仍然存在(效果是一片空白)

对比:设置display为none,也是隐藏,但此时该元素不但不可见,而且不占版面空间。

表格属性

样式 可选值 含义
border-collapse collapse(合并)、separate(分离) 合并边框
border-spacing(限边框分离模式) Xpx/ Xpx Ypx 水平和垂直间距为X px
text-align left、center、right 单元格水平对齐方式
vertical-align(限单元格) top、center、middle 单元格垂直对齐方式

列表属性

给UL和li添加边框,查看其作用效果,我们能得出以下结论
ul列表作为块状元素整行显示,并且默认头尾产生空白行,可以视作上下的外边距(margin)
ul列表默认具有左内边距,该内边距中包含了项目符号
列表项的项目符号处于ul的padding之中,在列表项的外面
项目符号设置单一

样式 含义
list-style-type none、square、disc、circle 设置项目符号
list-style-position inside、outside 项目符号位置
list-style-image url(‘图片位置‘) 将图片设置为项目符号
list-style list-style: list-style-type list-style-pisition list-style-image 综合设置(有顺序之分)

原文:https://www.cnblogs.com/xiaoyixiang/p/14902190.html

评论(0
© 2014 bubuko.com 版权所有 - 联系我们:wmxa8@hotmail.com
打开技术之扣,分享程序人生!