【第三章】CSS(一)——基础选择器、CSS的属性

【第三章】CSS(一)------基础选择器、CSS的属性

前面两章,我们为大家介绍了HTML的相关属性,那么我们所说,网页是由HTML+CSS+JavaScript三者的所组成的,那么这一章,我们就从CSS的相关属性来讲。

CSS属性主要针对文本的外观属性和文本的样式属性,那么我们就先从这两个方面入手。而在前面,我们为了让CSS有更好的展示,先从写入文本的选择器开始介绍

基础选择器介绍

基础选择器有很多,有行内样式表,外部样式表、也有对于标签的简单选择器:类选择器,通配符选择器,id选择器等,我们下面来一一介绍。

行内样式表

行内样式表是写在标签当中的,可以附在标签的内容后面,但是行内样式表只对单个标签起作用,而对于多个标签则需要重复书写。案例如下:

html 复制代码
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>行内式引入css样式表</title>
</head>
<body>
<!--使用CSS行内样式表修饰二级标题的字号、颜色和对齐方式-->
<!--两个h2标签的样式一模一样,但使用行内样式表,必须在两个标签里重复书写-->
<h2 style="font-size:40px;color:red;text-align:center;">第一章门前有棵树</h2>
<h2 style="font-size:40px;color:red;text-align:center;">第二章一个人的战场</h2>
</body>

</html>

如果需要对于两行都起作用,需要我们重复写,这就会大大增加我们的工作量。那么我们就可以使用一些选择器来简化我们的工作。

标签选择器

标签选择器是对于标签来说的,写上后会把范围内的标签都算上。在这一个html文件当中都具有效果的。并且对于标签内的内容,我们都可以用CSS属性给它指定属性。

html 复制代码
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>标签选择器</title>
<style type="text/css">
div
    {
        width:700px;
        background-color:rgb(240,157,230);
        margin: auto;
        text-align: center;
    }
    h1{text-align:center,} 
    p{color: #0F0;font-family:"黑体";font-size:24px;}
    strong{color:#00F;}
    h1,h2,p{text-align:center;}
</style>
</head>
<body>
<div>
<h1>唐诗宋词一人生自有诗意</h1>
<h2>绝句·古木阴中系短篷</h2>
<strong><em>[宋]</em>&nbsp;&nbsp;&nbsp;&nbsp;志南</strong>
<p>古木阴中系短篷,杖藜扶我过桥东。</p>
<p>沾衣欲湿香花雨,吹面不寒杨柳风。</p>
</div>
</body>

</html>

这里注意是所有的标签都会匹配,但是有的标签我们是不想让它进行匹配,那么我们就可以使用类选择器和Id选择器来找出我们想要选择的特定的匹配项目。

类选择器

类选择器也是一类基础的选择器,类选择器在使用的时候我们使用class=""来指定我们在标签中想要使用的属性。在CSS部分我们使用.类名的方式来指定属性。

html 复制代码
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8"></meta charset>
<title>类选择器</title>
<style type="text/css">
.green{color:green;text-decoration:underline;}
.red{color:red;}
.font22{font-size:22px;}
p{
    text-decoration:underline;
    font-family:"微软雅黑";
}
</style>
</head>
<body>
<h2 class="red">绝句·古木阴中系短篷</h2>
<p class="red">志南</p>
<p class="green font22">古木阴中系短篷,杖藜扶我过桥东。</p>
<p class="red font22">沾衣欲湿香花雨,吹面不寒杨柳风。</p>
</body>

</html>

id选择器

Id选择器的使用方式和作用机制与类选择器基本一致,不同的地方在于id选择器通过id=""与#id名在CSS部分进行指定

html 复制代码
<!DOCTYPE html>
<html lang="zh-cn">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>id选择器</title>
    <style>
        #bold{font-weight: bold;}
        #font30{font-size: 30px;}
        #font24{font-size: 24px;}
        #red{color: red;}
    </style>
</head>
<body>
    <p id="bold">段落1:id="bold",设置粗体文字</p>
    <p id="font30">段落2:id="font30",设置字体大小为30px</p>
    <p id="font24 red">段落3:id="bold font24",同时设置字体颜色为红色和字号为24px。
        效果为什么没有实现呢?去掉一个id属性试试。</p>
</body>
</html>

这里段落效果没有实现的根本原因是:一个 HTML 元素只能有一个 id ,且 id 值必须是单个标识符(不能有空格)。想要同时应用多个样式,应该用 class 属性 。

通配符选择器

通配符选择器本意就是对于所有在当前html文档当中的元素都进行匹配,不管是什么标签的,一律进行匹配。

html 复制代码
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8"></meta>
<title>通配符选择器</title>
<style type="text/css">
*{
		color: #F00;
		text-align:center;
		background-color:Lgrey}
		h1{color:green;}
		/*类选择器*/
		.bold{font-weight:900;}
		#font{font-family:"隶书";
     font-size:30px;
}
</style>
</head>
<body>
		<h1>春晓</h1>
		<p class="bold">唐孟郊</p>
		<p id="font">春眠不觉晓,外处外闻蹄鸟。</p>
		<p>夜来风雨声,花落知多少。</p>
</body>

</html>

这就是我们所讲的所有内部样式使用CSS属性,同样的,也有外部的样式,外部样式就是使用外部的链接表,外部的样式就是外部的链接样式表

链接样式表

html 复制代码
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>外部样式表2</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel="stylesheet" href="./css/style3-3.css">
</head>
<body>
		<h1>《赏牡丹》</h1>
		<p>唐·刘禹锡</p>
		<p>庭前芍药妖无格,池上芙藥净少情。</p>
		<p>唯有牡丹真国色,花开时节动京城。</p>
</body>

</html>

外部样式表的内容如下图所示

css 复制代码
@charset "UTF-8";
/* CSS Document */
h1{
    font-family: "幼圆";
    color: #72f50a;
    text-align: center;
}
p{
    font-family: "华文行楷";
    font-size: 20px;
    text-align: center;
    color: #f716de;
}

上面所写的就是我们经常使用的CSS链接的属性,那么下面我们就来说CSS的属性。

CSS属性

CSS当中的属性分为文本外观属性和背景样式属性两个模块来说。

文本外观属性

文本的外观属性就是对于文本的属性,文本内容所具有的属性。文本内容所具有的属性分为颜色,大小,行高,装饰等一系列的属性。接下来就把常用的属性配上例子来写:

color属性

color属性就是颜色属性,我们使用的是十六进制的RGB,就是red-green-blue三个属性。使用#加上三个十六进制的数字。或者是直接指定RGB即可。

html 复制代码
<!doctype html>
<html>

<head>
    <meta charset="utf-8">
    <title>文本颜色color</title>
    <style>
        .color1 {
            color: #ff0000;
        }

        .color2 {
            color: #f00;
        }

        .color3 {
            color: rgb(0, 255, 102);
        }

        .color4 {
            color: blue;
        }
    </style>
</head>

<body>
    <p class="color1">用#六位十六进制数表示颜色</p>
    <p class="color2">用#三位十六进制数表示颜色</p>
    <p class="color3">用rgb(三个十进制数表示颜色)</p>
    <p class="color4">用颜色名称表示颜色</p>
</body>

</html>

text-align属性

用来指定文本的元素对齐,设计的有左对齐、右对齐、居中对齐三种规则。

html 复制代码
<!doctype html>
<html>

<head>
    <meta charset="utf-8">
    <title>文本对齐text-align</title>
    <style>
        /* 块级元素设置text-align属性,可以让自己包裹的内容居中、左对齐或右对齐 */
        .align1 {
            text-align: left;
        }

        .align2 {
            text-align: center;
        }

        .align3 {
            text-align: right;
        }

        div {
            width: 400px;
            height: 400px;
            text-align: center;
            background-color: pink;
        }

        /* 行内元素,设置text-align属性是无用的,因为它并不会独占整行,所以对齐方式对行内元素没有意义 */
        /* 行内元素如果想要相对于父元素居中、左、右对齐,需要设置父元素的text-align属性 */
        a,
        span,
        img,
        input {
            background-color: rgb(158, 224, 248);
        }

        img {
            width: 200px;
        }

        span {
            width: 100px;
            text-align: center;
        }

        p {
            height: 30px;
            background-color: blue;
            font-size: 12px;
            color: white;
            line-height: 30px;
        }
    </style>
</head>

<body>
    <p class="align1">文本左对齐:你笑起来真好看,像春天的花儿一样。</p>
    <p class="align2">文本居中对齐:你笑起来真好看,像春天的花儿一样。</p>
    <p class="align3">文本右对齐:你笑起来真好看,像春天的花儿一样。</p>
    <div>
        <span>这是一个span标记</span><br>
        <a href="#">这是一个超链接</a><br>
        <img src="../images/spring.jpg" alt=""><br>
        <input type="text">
    </div>
</body>

</html>

line-height属性

英语名字翻译过来就是行高的意思。line-height属性可以用以下几种形式进行表示:

1.px(像素值设置)

2.%(百分比设置)

3.em(字体行高的倍数)

4.也可以使用行高的属性进行计算

它的写法也可以这样表示:

写法 计算方式
px(像素) 固定值
em 字号 × 倍数
%(百分比) 字号 × 百分比
无单位数字(推荐) 字号 × 倍数
html 复制代码
<!doctype html>
<html>

<head>
      <meta charset="utf-8">
      <title>行高line-height的使用</title>
      <style >
            /*  1.倍数行距是相对于字体的倍数
      2.无单位行距和有单位行距在继承行距时有区别,有单位继承的是父元素的行距,无单位继承的仅是倍数*/
            .one {
                  font-size: 40px;
                  line-height: 18px;
                  /*使用像素值作为行高*/
                  background-color: #0FF;
            }

            .two {
                  font-size: 40px;
                  line-height: 2em;
                  /*em作行高,字体大小的倍数*/
                  background-color: #ff00ff;
            }

            .two p {
                  font-size: 20px;
                  /* line-height: 2em; */
                  background-color: #40f;
            }

            .three {
                  font-size: 40px;
                  line-height: 150%;
                  /*使用当前字体的百分比作行高*/
                  background-color: #a03030;
            }

            .three p {
                  font-size: 40px;
                  /*line-height:150%;*/
                  background-color: #fea;
            }

            .four {
                  font-size: 40px;
                  line-height: 2;
                  /*推荐使用,根据当前元素的font-size大小计算*/
                  background-color: pink;
            }

            .four p {
                  font-size: 20px;
                  /*line-height: 2;*/
                  background-color: orange;
            }
      </style>
</head>

<body>
      <div class="one">
            <p>段落1:使用像素px设置line-height。该段落字体大小为40px,line-height属性值为18px。</p>
      </div>
      <div class="two">
            <p>段落2:父元素使用相对值em设置line-height。该段落字体大小20px,
                  继承父元素的行距。父元素字号40px,父元素行距2em,所以父元素行距是80px</p>
      </div>
      <div class="three">
            <p>段落3:使用百分比%设置line-height。该段落字体大小为40px,line-height属性值为150%。所以行高为60px</p>
      </div>
      <div class="four">
            <p>段落4:父元素使用无单位系数设置line-height。子元素未设置line-height属性,子元素继承父元素的无单位倍数,子元素段落字体大小为20px,子元素行高为当前元素字号的2倍,所以子元素的行高是40px</p>
      </div>

</body>

</html>

text-indent属性

text-indent属性是文本的首行缩进属性,同样我们可以指定像素,字号,与字号的百分比属性。text-indent 只缩进段落 第一行 ,后面各行保持原样。 2em 是最实用的写法,因为无论字号改成多大,始终缩进两个字符的距离。

html 复制代码
<!doctype html>
<html>

<head>
	<meta charset="utf-8">
	<title>首行缩进text-indent</title>
	<style>
		p {
			font-size: 14px;
		}

		.one {
			font-size: 40px;
			text-indent: 2em;

		}

		.two {
			font-size: 20px;
			text-indent: 50px;
		}

		.three {
			font-size: 20px;
			text-indent: 10%;
		}

		div {
			width: 500px;
		}
	</style>
</head>

<body>
	<p class="one">
		这是段落1中的文本,text-indent属性可以对段落文本设置首行缩进效果,段落1使用text-indent:2em;。这是段落1中的文本,text-indent属性可以对段落文本设置首行缩进效果,段落1使用text-indent:2em;。
	</p>
	<p class="two">
		这是段落2中的文本,text-indent属性可以对段落文本设置首行缩进效果,段落2使用text-indent:50px;这是段落2中的文本,text-indent属性可以对段落文本设置首行缩进效果,段落2使用text-indent:50px;
	</p>
	<div>
		<p class="three">
			这是段落3中的文本,text-indent属性可以对段落文本设置首行缩进效果,段落3使用text-indent:200%;这是段落3中的文本,text-indent属性可以对段落文本设置首行缩进效果,段落3使用text-indent:200%;
		</p>
	</div>
</body>

</html>

text-decoration属性

文本的装饰属性,可以用来装饰文本。

属性 作用
overline 上划线
underline 下划线
line-through 删除线
dotted 小圆点
dashed 短横线

这就是我们常用的一些属性

html 复制代码
<!doctype html>
<html>

<head>
	<meta charset="utf-8">
	<title>文本装饰text-decoration</title>
	<style>
		body {
			font-size: 50px;
		}

		.one {
			text-decoration: underline;
			
		}

		.two {
			text-decoration: overline dotted;
			
		}

		.three {
			text-decoration: line-through;
		}

		.four {
			text-decoration: underline line-through;
		}
	</style>
</head>

<body>
	<p class="one">设置下划线(underline)</p>
	<p class="two">设置上划线(overline)</p>
	<p class="three">设置删除线(line-through)</p>
	<p class="four">同时设置下划线和删除线(underline line-through)</p>
</body>

</html>

text-transform属性

这个属性用于控制英文文本的大小写转换 ,有三个常用值:

属性值 作用
uppercase 全部转为大写
lowercase 全部转为小写
capitalize 每个单词首字母大写
html 复制代码
<!doctype html>
<html>

<head>
  <meta charset="utf-8">
  <title>text-transform属性</title>
  <style>
    body {
      font-size: 50px;
    }

    h1 {
      text-transform: uppercase
    }

    p.uppercase {
      text-transform: uppercase
    }

    p.lowercase {
      text-transform: lowercase
    }

    p.capitalize {
      text-transform: capitalize
    }
  </style>
</head>

<body>
  <h1>This Is An H1 Element</h1>
  <p class="uppercase">This is some text in a paragraph.</p>
  <p class="lowercase">This is some text in a paragraph.</p>
  <p class="capitalize">This is some text in a paragraph.</p>
</body>

</html>

text-overflow属性

这是文本溢出时所显示的属性

属性值 介绍
clip 直接裁剪,超出部分不显示,没有省略号
ellipsis 超出部分用 省略号 ... 替代
html 复制代码
<!doctype html>
<html>

<head>
	<meta charset="utf-8">
	<title>text-overflow属性</title>
	<style>
		P {
			font-size: 25px;
			width: 200px;
			height: 100px;
			border: 1px solid blue;
			white-space: nowrap;
			/*强制文本不能换行*/
			/* 修剪溢出文本,不显示省略标记"..." */
			/* text-overflow: clip; */
			/*用省略标记"..."标示被修剪文本*/
			text-overflow: ellipsis;
			overflow: hidden;
		}
	</style>
</head>

<body>
	<p>把很长的一段文本中溢出的内容隐藏,出现省略号,把很长的一段文本中溢出的内容隐藏,出现省略号</p>
</body>

</html>

word-spacing和letter-spacing属性

这是表示字符间距和字母间距的属性,对于letter-spacing来说,控制每个字符/字母之间的间距,对中文也有效果。但是word-spacing控制的是每个单词 之间的间距(以空格分隔)无效,因为中文词间无空格。

html 复制代码
<!doctype html>
<html>

<head>
	<meta charset="utf-8">
	<title>word-spacing和letter-spacing</title>
	<style>
		p {
			font-size: 40px;
		}

		.letter {
			letter-spacing: 40px;
		}

		.word {
			word-spacing: 40px;
		}
	</style>
</head>

<body>
	<p class="letter">letter spacing(字符间距)</p>
	<p class="word">word spacing word spacing(单词间距)</p>
</body>

</html>

white-space属性

名称 属性
normal 默认,会换行
pre 保留一个空格,不换行
nowrap 多个空格,不换行
html 复制代码
<!doctype html>
<html>

<head>
    <meta charset="utf-8">
    <title>white-space空白符处理</title>
    <style>
        .one {
            white-space: normal;
        }

        .two {
            white-space: pre;
        }

        .three {
            white-space: nowrap;
        }
    </style>
</head>

<body>
    <p class="one">这个 段落中
        有很多空格。此段落应用white-space:normal;。这是一个较长的段落。这是一个较长的段落。这是一个较长的段落。这是一个较长的段落。这是一个较长的段落。这是一个较长的段落。这是一个较长的段落。这是一个较长的段落。这是一个较长的段落。这是一个较长的段落。
    </p>
    <p class="two">这个 段落中 有很多
        空格。此段落应用white-space:pre;。</p>
    <p class="three">此段落应用white-space:nowrap;。这是一个较长的段落。这是一个
        较长的段落。这是一个较长的段落。这是一个较长的段落。这是一个较长的段落。这是一个较长的段落。
        这是一个较长的段落。这是一个较长的段落。这是一个较长的段落。这是一个较长的段落。</p>
</body>

</html>

好的,上面就是我们所介绍的CSS的基础选择器和简单的文本外观属性。由于文本长度的考虑,本文就先介绍到这里。下面一章会为大家介绍更加复杂的选择器和背景的属性值。喜欢的朋友记得给个三连,我们下一章不见不散~

相关推荐
IVEN_1 小时前
本地正常,Docker 怎么就空白:Next.js SSR 的 Alpine musl DNS 陷阱
前端·docker·next.js
凡人叶枫1 小时前
Effective C++ 条款24:若所有参数皆须要类型转换,请为此采用 non-member 函数
linux·前端·c++·算法·嵌入式开发
用户887665426631 小时前
Web3 前端实时通信如何落地:从 SSE 订阅到行情、订单与账户状态更新
前端·react.js·web3
an317421 小时前
使用 LangGraph + DeepSeek 构建 AI 面试官:状态图设计与实践
前端·ai编程
代码不加糖1 小时前
MessageChannel是什么,有什么使用场景?
前端·javascript
小小龙学IT1 小时前
HTMX:让 HTML 重新成为前端核心的超轻量动态交互库
前端·html·交互
星栈1 小时前
写 Makepad Demo 不难,难的是把它写成项目
前端·rust
用户059540174461 小时前
localStorage清除策略踩坑实录:一个过期的token让我排查了3小时
前端·css
Nanachi2 小时前
跨框架的前端源码定位,再加上点LLM
前端