CSS基础知识5

续CSS基础知识4

十一丶display属性

11.1 隐藏元素

隐藏一个元素可以通过把 display 属性设置为"none",或把 visibility 属性设置为"hidden"。但是请注意,这两种方法会产生不同 的结果。

visibility:hidden;可以隐藏某个元素,但隐藏的元素仍需占用与未隐藏之前一样的空间。也就是说,该元素虽然被隐藏了, 但仍然会影响布局。

区别,visibility:hidden仍会占据原来的位置,知识让他隐形了

display:none是让他隐藏掉,并且不占据原来的位置。

实例:

visibility: hidden;

div.hidden {
	visibility: hidden;
}

display:none可以隐藏某个元素,且隐藏的元素不会占用任何空间。也就是说,该元素不但被隐藏了,而且该元素原本占用 的空间也会从页面布局中消失。

div.none {
	display: none;
}

11.2 块和内联元素

当你需要使用span给一些小的图标的时候,又因为span为内联元素,无法设置宽高,则就需要通过强制转换的方式,将其转换为块级元素。

实例:

span {
	display: block;
	/* 此时可以设置宽高了 */
}
li {
	display: inline;
}

11.3 display: inline-block

display: inline 相比,主要区别在于 display: inline-block; 允许在元素上设置宽度和高度。同样,如果设置了 display: inline-block; ,将保留上下外边距/内边距,而 display: inline; 则不会。 与 display: block; 相比,主要区别在于 display:inline-block;元素之后不添加换行符,因此该元素可以位于其他元素旁边。

display 的一种常见用法:inline-block 用于水平而不是垂直地显示列表项。例如水平的导航栏。

十二丶伪类

伪类用于定义元素的特殊状态。

例如,它可以用于:

  • 设置鼠标悬停在元素上时的样式
  • 为已访问和未访问链接设置不同的样式
  • 设置元素获得焦点时的样式

例如:

/* 未访问的链接 */
a:link {
	color: #FF0000;
}
/* 已访问的链接 */
a:visited {
	color: #00FF00;
}
/* 鼠标悬停链接 */
a:hover {
	color: #FF00FF;
}
/* 已选择的链接 */
a:active {
	color: #0000FF;
}

在元素上使用 :hover 伪类:

div:hover {
	background-color: blue;
}

十三丶伪元素

伪元素用于设置元素指定部分的样式。

例如,它可用于:

  • 设置元素的首字母、首行的样式
  • 在元素的内容之前或之后插入内容

::before 伪元素可用于在元素内容之前插入一些内容。

h1::before {
	content: url('img/smiley.png');
	vertical-align: middle;
	margin-right: 12px;
}

::after 伪元素可用于在元素内容之后插入一些内容。

可用于清除浮动

h1::after {
	content: url('img/smiley.png');
	vertical-align: middle;
	margin-right: 12px;
}

十四丶超链接

通过 CSS,可以用不同的方式设置链接的样式。

在这里插入图片描述

a {
	color: hotpink;
}

14.1 链接样式

此外,可以根据链接处于什么状态来设置链接的不同样式。

四种链接状态分别是:

  • a:link - 正常的,未访问的链接
  • a:visited - 用户访问过的链接
  • a:hover - 用户将鼠标悬停在链接上时
  • a:active - 链接被点击时

具体可以参考上方的伪类,并且这四个写的时候顺序必须为从上向下

14.2 文本样式

text-decoration 属性主要用于从链接中删除下划线。

a{
	text-decoration:none;
}

14.3 背景色

background-color 属性可用于指定链接的背景色。

a{
	background-color:red;
}

14.4 链接按钮

我们可以通过多个样式从而将a标签设置为一个按钮

a {
	color: white;
	padding: 14px 25px;
	text-decoration: none;
	display: inline-block;
	background-color: #f44336;
}
a:link,
a:visited {
	background-color: #f44336;
}
a:hover,
a:active {
	background-color: red;
}

在这里插入图片描述

十五丶CSS列表

  1. list-style-type:设置列表项的标志类型,常见的取值有:
    • none:无标志,适用于创建无序列表。
    • disc:实心圆点标志,适用于无序列表,默认值。
    • circle:空心圆标志,适用于无序列表。
    • square:实心方块标志,适用于无序列表。
    • decimal:十进制数字标志,适用于有序列表。
    • lower-alpha:小写字母标志,适用于有序列表。
    • upper-alpha:大写字母标志,适用于有序列表。
    • lower-roman:小写罗马数字标志,适用于有序列表。
    • upper-roman:大写罗马数字标志,适用于有序列表。
  2. list-style-image:使用自定义图像作为列表项的标志符号,可以指定一个图像的URL。
  3. list-style-position:控制标志符号的位置,常见取值有:
    • inside:标志符号位于列表项内部,默认值。
    • outside:标志符号位于列表项外部。
  4. list-style:用于同时设置列表的所有样式属性,可以将上述属性进行合并。

以下是一个示例,展示如何使用这些属性来创建一个列表:

<ul>
  <li>列表项1</li>
  <li>列表项2</li>
  <li>列表项3</li>
</ul>
ul {
  list-style-type: disc;
  list-style-position: inside;
}

/* 或者可以使用 list-style 简写属性 */
/* ul {
  list-style: disc inside;
} */

在上面的示例中,使用 list-style-type 设置无序列表的标志类型为实心圆点,使用 list-style-position 设置标志符号位于列表项内部。

  1. 也可以设置<ul>,<li>的背景色
ul {
	background: #3399ff;
	padding: 20px;
}
ul li {
	background: #cce5ff;
	margin: 5px;
	margin-left: 35px;
	margin-bottom: 5px;
}

十六丶CSS表格

  1. border-collapse:定义表格边框的折叠方式,常见取值有:
    • collapse:相邻单元格的边框会合并为一个单一的边框,默认值。
    • separate:相邻单元格的边框会保持单独的边框。
  2. border:设置表格边框的样式、宽度和颜色,可以使用简写属性 border 或分别使用 border-widthborder-styleborder-color 设置。
  3. background-color:设置表格的背景颜色。
  4. text-align:设置表格中文本的水平对齐方式,常见取值有:
    • left:左对齐。
    • center:居中对齐。
    • right:右对齐。
  5. padding:设置表格单元格的内边距大小,可以使用简写属性 padding 或分别使用 padding-toppadding-rightpadding-bottompadding-left 设置。
  6. font-size:设置表格中文本的字体大小。

以下是一个示例,展示如何使用这些属性来为表格应用样式:

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        table {
            border-collapse: collapse;
            border: 1px solid #ccc;
            background-color: #f2f2f2;
            width: 100%;
        }

        th,
        td {
            border: 1px solid #ccc;
            padding: 8px;
            text-align: left;
        }

        th {
            background-color: #ddd;
        }

        /* even偶数 */
        /* odd奇数 */
        tr:nth-child(even) {
            background-color: #666;
        }

        td:nth-child(1) {
            width: 30%;
            /* 设置第一列的宽度为30% */
        }

        td:nth-child(2) {
            width: 20%;
            /* 设置第二列的宽度为20% */
        }

        td:nth-child(3) {
            width: 50%;
            /* 设置第三列的宽度为50% */
        }
    </style>
</head>

<body>
    <table>
        <thead>
            <tr>
                <th>姓名</th>
                <th>年龄</th>
                <th>性别</th>
            </tr>
        </thead>
        <tbody>
            <tr>
                <td>张三</td>
                <td>25</td>
                <td></td>
            </tr>
            <tr>
                <td>李四</td>
                <td>30</td>
                <td></td>
            </tr>
            <tr>
                <td>李四</td>
                <td>30</td>
                <td></td>
            </tr>
            <tr>
                <td>李四</td>
                <td>30</td>
                <td></td>
            </tr>
        </tbody>
    </table>
</body>

</html>

在这里插入图片描述

在上面的示例中,使用 border-collapse 设置表格边框的折叠方式为 collapse,使用 border 设置表格边框的样式、宽度和颜色。使用 background-color 设置表格的背景颜色,使用 width 设置表格的宽度为100%。对于表格的表头单元格和数据单元格,使用 border 设置边框样式,使用 padding 设置内边距大小,使用 text-align 设置水平对齐方式。对于表格的偶数行,使用 nth-child 选择器设置背景颜色。

十七丶CSS表单

17.1 设置输入框的样式

使用 width 属性来确定输入框的宽度:

input {
	width: 100%;
	border: 1px solid #cccccc;
}

上例适用于所有 元素。如果只想设置特定输入类型的样式,则可以使用属性选择器:

  • input[type=text] 将仅选择文本字段
  • input[type=password] 将仅选择密码字段
  • input[type=number]将仅选择数字字段

17.2 填充输入框

使用 padding 属性在文本字段内添加空间:

input[type=text] {
	width: 100%;
	padding: 12px 20px;
	margin: 8px 0;
	box-sizing: border-box;
}

请注意,我们已将 box-sizing 属性设置为 border-box。这样可以确保元素的总宽度和高度中包括内边距(填充)和最终的边框。

17.3 带边框的输入框

请使用 border 属性更改边框的粗细和颜色,并使用 border-radius 属性添加圆角:

input[type="text"].around {
	width: 100%;
	padding: 12px 20px;
	margin: 8px 0;
	box-sizing: border-box;
	border: 2px solid red;
	border-radius: 4px;
}

如果仅需要下边框,请使用 border-bottom 属性:

input[type="text"].bottom {
	width: 100%;
	padding: 12px 20px;
	margin: 8px 0;
	box-sizing: border-box;
	border: none;
	border-bottom: 2px solid red;
}

17.4 彩色输入框

请使用 background-color 属性为输入添加背景色,并使用 color 属性更改文本颜色:

input[type="text"] {
	width: 100%;
	padding: 12px 20px;
	margin: 8px 0;
	box-sizing: border-box;
	background-color: MediumSeaGreen;
	color: white;
	border: none;
	outline: none;
}

17.5 获得焦点的输入框

默认情况下,某些浏览器在获得焦点(单击)时会在输入框周围添加蓝色轮廓。你可以通过向输入框添加 outline: none; 来消 除此行为。

input[type="text"] {
	width: 100%;
	padding: 12px 20px;
	margin: 8px 0;
	box-sizing: border-box;
	outline: none;
}

使用 :focus 选择器可以在输入字段获得焦点时为其设置样式:

input[type="text"]:focus {
	background-color: lightblue;
	border: 3px solid #555;
}

17.6 带有图标/图像的输入框

如果希望在输入框中包含图标,请使用 background-image 属性,并将其与 background-position 属性一起设置。还要注 意,我们添加了一个较大的左内边距(padding-left)来留出图标的空间:

input[type="text"] {
	width: 100%;
	height: 46px;
	box-sizing: border-box;
	border: 2px solid #cccccc;
	border-radius: 4px;
	background-color: white;
	background-image: url('img/searchicon.png');
	background-position: 10px 10px;
	background-repeat: no-repeat;
	padding-left: 40px;
}

17.7 设置文本域的样式

使用 resize 属性可防止对 textareas 调整大小(禁用右下角的“抓取器”):

textarea {
	width: 100%;
	height: 150px;
	padding: 12px 20px;
	box-sizing: border-box;
	border: 2px solid #ccc;
	border-radius: 4px;
	background-color: #f8f8f8;
	resize: none;
}

17.8 设置输入按钮的样式

input[type="button"],
input[type="submit"],
input[type="reset"] {
	background-color: green;
	border: none;
	color: white;
	padding: 16px 32px;
	text-decoration: none;
	margin: 4px 2px;
	cursor: pointer;
}

十八丶 CSS轮廓

轮廓是在元素周围绘制的一条线,在边框之外,以凸显元素。

轮廓与边框不同!轮廓是在元素边框之外绘制的,并且可能与其他内容重叠。轮廓也不是元素尺寸的一部分;元素的总宽度 和高度不受轮廓线宽度的影响。

18.1 轮廓样式

outline-style 属性指定轮廓的样式,并可设置如下值:

  • dotted - 定义点状的轮廓。
  • dashed - 定义虚线的轮廓。
  • solid - 定义实线的轮廓。
  • double - 定义双线的轮廓。
  • groove - 定义 3D 凹槽轮廓。
  • ridge - 定义 3D 凸槽轮廓。
  • inset - 定义 3D 凹边轮廓。
  • outset - 定义 3D 凸边轮廓。
  • none - 定义无轮廓。
  • hidden - 定义隐藏的轮廓。

下例展示了不同的 outline-style 值:

p.dotted {
outline-style: dotted;
}
p.dashed {
outline-style: dashed;
}
p.solid {
outline-style: solid;
}
p.double {
outline-style: double;
}
p.groove {
outline-style: groove;
}
p.ridge {
outline-style: ridge;
}
p.inset {
outline-style: inset;
}
p.outset {
outline-style: outset;
}

效果:与边框类似

18.2 轮廓宽度

outline-width 属性指定轮廓的宽度,并可设置如下值之一:

  • thin(通常为 1px)
  • medium(通常为 3px)
  • thick (通常为 5px)
  • 特定尺寸(以 px、pt、cm、em 计)

18.3 轮廓颜色

outline-color 属性用于设置轮廓的颜色。

可以通过以下方式设置颜色:

  • name - 指定颜色名,比如 “red”
  • HEX - 指定十六进制值,比如 “#ff0000”
  • RGB - 指定 RGB 值,比如 “rgb(255,0,0)”
  • HSL - 指定 HSL 值,比如 “hsl(0, 100%, 50%)”
  • invert - 执行颜色反转(确保轮廓可见,无论是什么颜色背景)

18.4 简写属性

outline 属性是用于设置以下各个轮廓属性的简写属性:

  • outline-width
  • outline-style (必需)
  • outline-color

从上面的列表中, outline 属性可指定一个、两个或三个值。值的顺序无关紧要。

下例展示了用简写的 outline 属性指定的一些轮廓:

p.ex1 { outline: dashed; }
p.ex2 { outline: dotted red; }
p.ex3 { outline: 5px solid yellow; }
p.ex4 { outline: thick ridge pink; }

在这里插入图片描述

18.5 轮廓偏移

outline-offset 属性在元素的轮廓与边框之间添加空间。元素及其轮廓之间的空间是透明的。

下例指定边框边缘外 25px 的轮廓:

p {
margin: 50px;
border: 1px solid black;
background: yellow;
outline: 2px solid red;
outline-offset: 25px;
}

十九丶 媒体类型

通常用于响应式布局:

响应式的概念
意在实现不同屏幕分辨率的终端上浏览网页的不同展示方式。

    技术:
        设置viewport
        媒体查询

        移动端优先:
        /* 超小型设备(手机,768px以下) */

        @media screen and(min-width:768px){...}/* 小型设备(平板电脑,768px 以上) */
        @media screen and(min-width:992px){...}/* 中型设备(台式电脑,992px 以上) */
        @media screen and(min-width:1200px){...}/* 大型设备(大台式电脑,1200px 以上) */

        大屏优先:
        /* 大型设备(大台式电脑,1200px以上) */

        @media screen and(max-width:1200px){...}/* 中设备(台式电脑,1200px 以下) */
        @media screen and(max-width:992px){...}/* 小型设备(平板电脑,992px 以下) */
        @media screen and(max-width:768px){...}/* 超小型设备(手机,768px 以下) */
 -->

示例:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
    <meta name="viewport" content="width=device-width, initial-scale=1.0,user-scalable=no">
    <title>Document</title>
    <style>
        *{
            margin: 0;
            padding: 0;
        }
        .wrap p{
            float: left;
            width: 25%;
        }
        .wrap p img{
            width: 100%;
        }
        .clearfix::after{
            content: "";
            display: block;
            clear: both;
        }
        @media screen and (max-width:1200px){
            .wrap p{
            width: 33.3%;
            }
        }
        
        @media screen and (max-width:992px){
            .wrap p{
                width: 50%;
            }
        }
        @media screen and (max-width:768px){
            .wrap p{
            width: 100%;
            }
        }
        

    </style>
</head>
<body>
     <div class="wrap clearfix">
        <p><img src="images/pic01.png" alt=""></p>
        <p><img src="images/pic01.png" alt=""></p>
        <p><img src="images/pic01.png" alt=""></p>
        <p><img src="images/pic01.png" alt=""></p>
        <p><img src="images/pic01.png" alt=""></p>
        <p><img src="images/pic01.png" alt=""></p>
        <p><img src="images/pic01.png" alt=""></p>
        <p><img src="images/pic01.png" alt=""></p>
        <p><img src="images/pic01.png" alt=""></p>
        <p><img src="images/pic01.png" alt=""></p>
        <p><img src="images/pic01.png" alt=""></p>
        <p><img src="images/pic01.png" alt=""></p>
        <p><img src="images/pic01.png" alt=""></p>
        <p><img src="images/pic01.png" alt=""></p>
        <p><img src="images/pic01.png" alt=""></p>
     </div>
</body>
</html>

超大屏:

在这里插入图片描述

大屏:

在这里插入图片描述

中屏:

在这里插入图片描述

小屏:

在这里插入图片描述

二十丶!important提权规则

CSS 中的 !important 规则用于增加样式的权重。

!important 与优先级无关,但它与最终的结果直接相关,使用一个 !important 规则时,此声明将覆盖任何其他声明。

实例:

#myid {
background-color: blue;
}
.myclass {
background-color: gray;
}
p {
background-color: red !important;
}

使用 !important 是一个坏习惯,应该尽量避免,因为这破坏了样式表中的固有的级联规则,使得调试找 bug 变得更加困难 了。

当两条相互冲突的带有 !important 规则的声明被应用到相同的元素上时,拥有更大优先级的声明将会被采用。

实例:

#myid {
background-color: blue !important;
}
.myclass {
background-color: gray !important;
}
p {
background-color: red !important;
}

使用建议:

  • 一定要优先考虑使用样式规则的优先级来解决问题而不是 !important
  • 只有在需要覆盖全站或外部 CSS 的特定页面中使用 !important
  • 永远不要在你的插件中使用 !important
  • 永远不要在全站范围的 CSS 代码中使用 !important

二十一丶CSS变量

CSS变量 是由CSS作者定义的实体,其中包含要在整个文档中重复使用的特定值。使用自定义属性来设置变量名,并使用特定的 var()来访问。

21.1 CSS变量的用途

构建大型站点时,在这些网页中,有大量的CSS样式,并且会在许多场合大量重复的使用。比如说:为了保持一种配色方案,在这 个配色方案中会有一些颜色经常重复出现在CSS样式表中。如果想要修改配色方案,不论是想单独修改某个颜色或是整套配色,都 不是一个简单的问题,而且很容易出错。

CSS可以减轻工作的复杂性,更方便修改和添加。不需要额外的编译。第二个好处就是变量本身是包含语义的信息。使CSS文件变 得更易读和容易理解。main-text-color比单纯出现在文档中的#00ff00要更加容易理解,特别是有相同颜色出现在不同的文件中 时。

21.2 什么是CSS变量

CSS变量当前有两种形式:

  • 变量,就是拥有合法标识符和合法的值。可以被使用在任意的地方。可以使用var()函数使用函数 var(–main-size) 会返回–main-size对应的值。
  • 自定义属性,这些属性使用–where的特殊格式作为名字 --main-size:30px; 即声明一个CSS语句,意思是:将30px赋值给–main-size变量。

注意:自定义属性和常规属性一样,只作用在当前层级,如果没有特别定义则将从其父元素继承其值。

21.3 变量的声明

声明变量之前,变量名之前要加上两个连字符(–)

body{
--head-color:#ada5f3;
--foot-color:#da56d4:
}

在这个例子中,body选择器中出现了两个变量:–head-color 和 --foot-color。

CSS变量与color、background这些正式属性并没有什么不同,只是没有默认含义。CSS变量其实与自定义的CSS属性用法相同。 CSS变量又叫做 CSS自定义属性(CSS custom properties)之所以选用两根连字符(–)表示CSS变量,是因为$foo 被Sass占用 了,@foo被Less占用了,为了产生冲突,所以就改用(–)表示CSS变量了

注意:变量名的大小写敏感,–head不同于–Head,这是两个不同的变量。

21.4 变量的作用域

一个变量的作用域是其对应的选择器的作用范围,div选择器对应div的范围,由于这个原因,全局的变量通常放在根元素 :root 里面,确保任何选择器都可以读取它们。

声明一个局部变量

element {
--main-bg-color: brown;
}

声明一个全局变量

:root {
--global-color: #666;
--pane-padding: 5px 42px;
}

:root 这个伪类选择器匹配的是文档树的根元素。对于HTML来说,:root表示的是 根元素,除了优先级更高以外,与 html元素选择器相同。

使用全局变量(在全局中声明以后,其他选择器也可以调用)

demo{
color: var(--global-color);
}

21.5 var()函数

  • var( ) 函数用以读取变量,var(变量名)

    • .box{
      --cor:#ddf;
      background-color: var(--cor);
      width:400px;height:40px;
      }
      
      
  • var()函数还可以使用第二个参数,表示变量的默认值。如果这个变量不存在,就会使用这个默认值

    • .box{
      --cor:#ddf;
      background-color: var(--corlo , red);
      width:400px;height:40px;
      }
      

      在这个例子里,var()使用了两个参数,变量–corlo和默认值red,由于不存在–corlo这个变量,所以使用red默认值。

      注意:第二个参数不处理内部的逗号或是空格,都视为参数的一部分

      font-size: var(--sizq,40px 12px);
      
  • var()函数还可以用在变量的声明

.box{
--cor:#ddf;
--bacolor: var(--cor);
}

注意:变量只能用作属性值,不能用作属性名;

.box{
--size:font-size;
var(--size):30px;
}

在这个例子中,变量–size用作属性名,这是无效的

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值