搜索
首页web前端css教程CSS3属性选择器的几种用法(代码实例)

本文目标:

1、掌握CSS3中属性选择器几种用法

问题:

1、要求使用div+css实现以下效果,但是要求css文件中全部使用属性选择器来设置元素样式

实现效果.png

附加说明:

1、整个div宽为850,要求在页面中居中显示

2、标题大小为28,加粗显示

3、其他字体14px大小

4、点击明星八卦,跳转到tobagua.html,点击军事新闻跳转到toaffairs.html

现在来具体操作

1、因为该案例不需要一些额外的素材,所以准备素材这一步就可以省略了

2、创建好index.html,写好架构,架构如何分析呢

思路分析:

1、目标分成左右2个部分,每个部分都是显示新闻列表,只是每个新闻的类别不一样,且一些样式也不同

2、含有林心如的新闻颜色要单独设置

3、含有f15的新闻颜色也要单独设置

4、两个部分的标题也要单独设置,所以要给他们单独设置一些属性,这才可以通过属性选择器来匹配到

5、因为每个部分都是列表,所以我们可以使用ul,但是两个ul都是平齐的,所以需要用到float,既然是float了,那么为了确保外层的容器依然能包裹住浮动的元素,所以最后需要加上clear元素来清除浮动

根据分析,我们得出以下代码

<!doctype html>
<html>

<head>
    <meta charset="utf-8">
    <title>属性选择器</title>
</head>

<body>
    <div container="true">
        <div left="true">
            <span title="true"><a href="tobagua.html">明星八卦</a></span>
            <ul>
                <li class="news lxr">->林心如女儿小海豚正面照被公开颜值撞脸年轻时的霍建华,太美了 </li>
                <li class="news">->倪萍还是胖点好,瘦下来后太显老了,一点精神没有穿衣也不好看! </li>
                <li class="news">->汪小菲晒儿女沙滩上顽皮玩耍,儿子长高不少,女儿一身泥被指酷似奶奶张兰 </li>
                <li class="news">->伊能静给婆婆安排了个小次卧, 走进秦妈妈的表情变化让人心疼! </li>
            </ul>
        </div>
        <div right="true">
            <span title="true"><a href="toaffairs.html">军事新闻</a></span>
            <ul>
                <li class="affairs news f15">->F15E成为首型接收B61-12核弹的战斗机 </li>
                <li class="affairs news">->越南的骑兵警队,马略矮了点啊 </li>
                <li class="affairs news">->美军运输机降落时冲出跑道后撞墙起火 4人受伤 </li>
                <li class="affairs news">->不到一个月又出事:美军F-35降落时起落架折断 </li>
            </ul>
        </div>
        <div class="clear"> </div>
    </div>
</body>
</html>

3、写样式 ,创建css文件夹,里面新建index.css,里面的样式怎么写了,以下是分析思路

思路分析:

container容器的所有子元素

1、因为要求每个样式必须使用属性选择器来匹配设置,所以我们的思路是首先要获取到属性container=true的元素,然后给它设置一些共同的样式,比如最常见的padding,margin,因为不这样设置的话,有些元素的默认padding你未必清楚,为了让你专心写逻辑,我们统一他们的padding,margin都为0

所以index.css中添加代码如下:

div[container =true] *{
    padding:0;
    margin:0;
}

container容器

1、根据要求得知,最外层容器的宽为850,要居中,上下左右都有padding,带灰色边框,默认字体大小为14px,哪个是container容器呢,就是container属性=true的元素

所以index.css中添加代码如下:

div[container =true] {
   width: 850px;
   margin: 0 auto;
   font-size: 14px;
   border: 1px solid lightgray;
   padding: 10px;
}

2个标题公共样式设置

1、因为标题都要求居中,字体大小为28px,加粗显示,哪些是标题呢,就是属性title=true的所有元素

所以index.css中添加代码如下:

span[title=true] {
   text-align: center;
   font-size: 28px;
   font-weight: bold;
}

2个标题连接的单独设置

1、八卦标题颜色是带红色的

2、军事标题颜色是蓝色的

3、属性href含有bagua字符串的就是左边的标题连接,href属性以toaffairs开头的就是右边标题连接

*= 表示包含,^=表示开头 

所以index.css中添加代码如下:

a[href *=bagua] {
   color: rgb(234, 84, 23);
}

a[href ^=toaffairs] {
   color: green;
}

左右浮动div设置

1、左边div需要向左浮动,那哪个是左边那个div呢,其实就是left属性为true的div

2、右边div需要向右浮动,那哪个是右边那个div呢,其实就是right属性为true的div

3、作用为清除浮动的div,其实就是 class 以clear结尾的那个

注:$= 表示以什么结束

所以index.css中添加代码如下:

div[left =true] {
   float: left;
}

div[right =true] {
   float: right;
}

div[class $= clear] {
   clear: both;
   float: none;
   width: 0;
   height: 0;
}

li设置

1、li不包含黑色圆点,所以list-style:none

2、属性class包含news字符串的元素即为li

3、根据效果得出上下左右有一定的间距

所以index.css中添加代码如下:

li[class =news] {
   list-style: none;
   height: 42px;
   line-height: 42px;
   padding:3px 10px;
}

含有林心如的标题设置

1、此标题颜色为土黄色,字体加粗

2、class属性以lxr结尾的为林心如的标题,所以用$=

[class $=lxr]{
    color:peru;
    font-weight: bold;
}

含有f15的标题设置

1、此标题颜色为蓝色,字体加粗

2、class属性包含f15字符串的标题为目标设置标题,所以用 *=

[class*=f15]{
    color:blue;
    font-weight: bold;
}

到此为止,index.css的全部内容如下:

div[container =true] *{
    padding:0;
    margin:0;
}
div[container =true] {
   width: 850px;
   margin: 0 auto;
   font-size: 14px;
   border: 1px solid lightgray;
   padding: 10px;
}

span[title=true] {
   text-align: center;
   font-size: 28px;
   font-weight: bold;
}

a[href *=bagua] {
   color: rgb(234, 84, 23);
}

a[href ^=toaffairs] {
   color: green;
}

div[left =true] {
   float: left;
}

div[right =true] {
   float: right;
}

div[class $= clear] {
   clear: both;
   float: none;
   width: 0;
   height: 0;
}

li[class *=news] {
   list-style: none;
   height: 42px;
   line-height: 42px;
   padding:3px 10px;
}
[class $=lxr]{
    color:peru;
    font-weight: bold;
}
[class*=f15]{
    color:blue;
    font-weight: bold;
}

然后将index.css引入index.html

<!doctype html>
<html>

<head>
    <meta charset="utf-8">
    <title>属性选择器</title>
    <link rel="stylesheet" type="text/css" href="css/index.css" /> 
</head>

<body>
    <div container="true">
        <div left="true">
            <span title="true"><a href="tobagua.html">明星八卦</a></span>
            <ul>
                <li class="news lxr">->林心如女儿小海豚正面照被公开颜值撞脸年轻时的霍建华,太美了 </li>
                <li class="news">->倪萍还是胖点好,瘦下来后太显老了,一点精神没有穿衣也不好看! </li>
                <li class="news">->汪小菲晒儿女沙滩上顽皮玩耍,儿子长高不少,女儿一身泥被指酷似奶奶张兰 </li>
                <li class="news">->伊能静给婆婆安排了个小次卧, 走进秦妈妈的表情变化让人心疼! </li>
            </ul>
        </div>
        <div right="true">
            <span title="true"><a href="toaffairs.html">军事新闻</a></span>
            <ul>
                <li class="affairs news f15">->F15E成为首型接收B61-12核弹的战斗机 </li>
                <li class="affairs news">->越南的骑兵警队,马略矮了点啊 </li>
                <li class="affairs news">->美军运输机降落时冲出跑道后撞墙起火 4人受伤 </li>
                <li class="affairs news">->不到一个月又出事:美军F-35降落时起落架折断 </li>
            </ul>
        </div>
        <div class="clear"> </div>
    </div>
</body>
</html>

运行结果为:

1.png

到此为止,实现了所需的结果

总结:

1、讲解了属性选择器的几种用法,比如

A=B表示A属性值等于B字符串

A*=B表示A属性值包含B字符串

A$=B表示A属性值以B字符串结尾

A^=B表示A属性值以B字符串开头

以上是CSS3属性选择器的几种用法(代码实例)的详细内容。更多信息请关注PHP中文网其他相关文章!

声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
在JavaScript应用程序中包括CSS的许多方法在JavaScript应用程序中包括CSS的许多方法Apr 19, 2025 am 10:08 AM

欢迎来到前端发展之地中一个引起争议的话题!我敢肯定,大多数阅读此书都遇到了您的博览会

引入NetLify分析引入NetLify分析Apr 19, 2025 am 10:07 AM

您在附带项目中工作一段时间。您认为它很酷!您决定将其释放到世界上。然后……顺利进行。否则进展不顺利。等待,

五星级评分的五种方法五星级评分的五种方法Apr 19, 2025 am 10:04 AM

在喜欢和社会统计的世界中,评论是留下反馈的非常重要的方法。用户通常喜欢以前知道他人的意见

如果您不知道CSS,哪些CSS很棒,这是最有意义的?如果您不知道CSS,哪些CSS很棒,这是最有意义的?Apr 19, 2025 am 09:56 AM

彼得·保罗(Peter-Paul)发布了这个问题:

用剪贴路径动画用剪贴路径动画Apr 19, 2025 am 09:52 AM

剪辑路径是我们通常知道在那里的CSS属性之一,但出于任何原因可能不会经常到达。从某种意义上说有点令人生畏

将GraphQL操场与Gatsby一起使用将GraphQL操场与Gatsby一起使用Apr 19, 2025 am 09:51 AM

我假设你们中的大多数人已经听说过盖茨比,至少很松散地知道,这基本上是一个用于React站点的静态站点生成器。通常

类型或测试:为什么不呢?类型或测试:为什么不呢?Apr 19, 2025 am 09:50 AM

时不时地,关于键入JavaScript的价值的辩论会引起辩论。 “只写更多测试!”大喊一些对手。 “用类型替换单位测试!”

GIT的图形用户界面GIT的图形用户界面Apr 19, 2025 am 09:46 AM

如今,Lemme汇集了Guis的主要参与者。

See all articles

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

AI Hentai Generator

AI Hentai Generator

免费生成ai无尽的。

热工具

mPDF

mPDF

mPDF是一个PHP库,可以从UTF-8编码的HTML生成PDF文件。原作者Ian Back编写mPDF以从他的网站上“即时”输出PDF文件,并处理不同的语言。与原始脚本如HTML2FPDF相比,它的速度较慢,并且在使用Unicode字体时生成的文件较大,但支持CSS样式等,并进行了大量增强。支持几乎所有语言,包括RTL(阿拉伯语和希伯来语)和CJK(中日韩)。支持嵌套的块级元素(如P、DIV),

SublimeText3 英文版

SublimeText3 英文版

推荐:为Win版本,支持代码提示!

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

Dreamweaver Mac版

Dreamweaver Mac版

视觉化网页开发工具

VSCode Windows 64位 下载

VSCode Windows 64位 下载

微软推出的免费、功能强大的一款IDE编辑器