一、id选择器和classable选择器的区别

选择器

CSS中的开头

HTML标签可以绑定几个

是否可重复

用途

id选择器

#

仅能一个

不可以重复(一个标签里仅有一个)

一般情况下是给JS用的,除非特殊情况下才给设置样式用

class选择器

.

可以多个

可以重复(多对多的关系)

专门用来设置样式的

二、选择器的技巧可以节省代码行数

看好问题:做一个网页

“我是好人”(颜色:红色;格式:宋体)

“我是学生”(颜色:绿色;格式:宋体)

”我是坏人“(颜色:红色;格式:楷体)

正常的编码是:就是按照一段一段的写

好处是清晰,每一段知道设置的什么,互不干扰,但是冗余代码太多。

我们需要转换思路,以属性为中心,先设置好,在配到标签上去,可以节省代码。

        .d1{           

            color:red;

            font-family: 宋体;

        }

        .d2{

            color:green;

            font-family: 宋体;

        }

        .d3{

            color:red;

            font-family: 楷体;

        }

        ......省略代码......

        <p class="d1">我是好人</p>

        <p class="d2">我是学生</p>

        <p class="d3">我是坏人</p>

我们改进代码:显示的一致,这也是对class性质(多标签可对多个class选择器)的应用,否则我们全用id选择器不也一样,一旦大网站开发,涉及到文本图片是庞大,先定义好格式,配到文本图片

.color_red{

            color: red;

        }

        .color_green{

            color:green;

        }

        .ff_songti{

            font-family: 宋体;

        }

        .ff_kaiti{

            font-family: 楷体;

        }

        ......省略代码......

        <p class="color_red ff_songti">我是好人</p>

        <p class="color_green ff_songti">我是学生</p>

        <p class="color_red ff_kaiti">我是坏人</p>

二、后代选择器

1.定义:找到指定标签的所有后代标签然后设置属性。用途即为:企业开发会有上千上万标签,因此挨个写class或者id就累死了,因此div应运而生。

2.格式:

标签属性1  标签属性2{

            属性:值;

}

3.含义:先找到名称叫做标签名称1的标签,然后在这个标签下面去查找所有名称为标签名称2的标签,然后再设置属性

4.注意:

(1)后代选择器必须使用空格隔开

       div p{

            color:red;

        }

..........省略代码........

<p>我是段落1</p>

<div>

    <p>我是红的1</p>

    <p>我是红的2</p>

</div>

(2)后代不仅仅是儿子,也包括孙子/重孙子等等

  div p{

            color:red;

        }

..........省略代码......

<div>

    <ul>

        <li><p>重孙子标签p,试一试</p></li>

    </ul>

</div>

(3)后代选择器不仅仅可以使用标签名称,还可以使用其他选择器(这个性质更具扩展性,代表div下面一堆各种标签都统一了格式,选择器样式会有这么就是为了减轻我们的编码负担,能够适配各种场景,找到最优解)

一个id的例子:

   #test1 p{

            color:blue;

        }

 ..........省略代码......      

<div id="test1" class="test2">

    <p>我是红的1</p>

    <p>我是红的2</p>

</div>

另一个class的例子:

 .test2{

            color:green;

        }

 ..........省略代码......      

<div id="test1" class="test2">

    <p>我是红的1</p>

    <p>我是红的2</p>

</div>

(4)div标签里面的标签也可以使用id,class属性也都能搭配

格式:只演示id的,class的把#换成.就行了

#div的id名称   #div里面的标签的id名称{

        属性:名称;

        }

(5)div标签可以向下无限延伸

格式:

div ul li p{

    属性:值:

}

例如:

   div ul li p{

            color:red;

        }

    </style>

</head>

<body>

<p>我是段落1</p>

<div id="test1" class="test2">

    <p>我是红的1</p>

    <p>我是红的2</p>

    <ul>

        <li><p>重孙子标签p,试一试</p></li>

    </ul>

</div>

二、源码:

d70_id_selector&class_selector

d71_posterity_selector

地址:

https://github.com/ruigege66/HTML_learning/tree/master

2.CSDN:https://blog.csdn.net/weixin_44630050(心悦君兮君不知-睿)

3.博客园:https://www.cnblogs.com/ruigege0000/

4.欢迎关注微信公众号:傅里叶变换,后台回复“礼包”获取Java大数据学习视频礼包

HTML连载18-id选择器与class区别&class选择器使用思路&后代选择器的更多相关文章

  1. CSS后代选择器、子元素选择器、相邻兄弟选择器区别与详解

    派生选择器用的很多,派生选择器具体包括为后代选择器.子元素选择器.相邻兄弟选择器,我们来理解一下他们之间的具体用法与区别. 1.css后代选择器语法:h1 em {color:red;} 表示的是从h ...

  2. 前端学习笔记之CSS后代选择器、子元素选择器、相邻兄弟选择器区别与详解

    派生选择器用的很多,派生选择器具体包括为后代选择器.子元素选择器.相邻兄弟选择器,我们来理解一下他们之间的具体用法与区别. 1.css后代选择器语法:h1 em {color:red;} 表示的是从h ...

  3. CSS后代选择器,子选择器和相邻兄弟选择器

    平时在代码练习中,经常用到后代选择器,子选择器也会用到,这里做个总结: 1,后代选择器和子选择器区别: ①写法不一样:后代选择器的标识为:空格 如:ul li{width:150px;} [ul和li ...

  4. css后代选择器 .属性 元素 与 元素.属性的区别

    经常看见css的后代选择器是这样的写法: div.class   和 .class div 的形式两者的区别: div.class  是选中的类名为class 的div元素,与直接使用类选择器.cla ...

  5. html中id name class的区别(转)

    HTML 中 id与name 区别 一个name可以同时对应多个控件,比如checkbox和radio 而id必须是全文档中唯一的 id的用途 1) id是HTML元素的Identity,主要是在客户 ...

  6. html元素中id和name的区别

    可以说几乎每个做过Web开发的人都问过,到底元素的ID和Name有什么区别阿?为什么有了ID还要有Name呢?! 而同样我们也可以得到最classical的答案:ID就像是一个人的身份证号码,而Nam ...

  7. CSS 子元素选择器与后代选择器区别实例讲解

    css子元素选择器和后代选择器在功能描述上非常相同,但是他们其实是有区别的,本文章通过两个简单的实例向大家介绍子元素选择器与后代选择器的区别,需要的朋友可以参考一下. 首先我们来了解一下子元素选择器与 ...

  8. CSS的子选择器与后代选择器的区别

    来源于:http://www.jianshu.com/p/599654ba5f4a 子选择器: 一个比较有用的选择器子选择器,即大于符号(>),用于选择指定标签元素的第一代子元素.如右侧代码编辑 ...

  9. html中元素的id和name的区别(2016-1-22)

    HTML中元素的Id和Name属性区别 一直以来一直以为在html中,name和id没什么区别,今天遇到一个坑才发现(PHP获取不到表单数据,原因:元素没有name,只定义了id),这两者差别还是很大 ...

随机推荐

  1. IT兄弟连 HTML5教程 HTML5的学习线路图 第一阶段学习网页制作

    学习HTML5技术可并不是简单学会几个新增的标签而已,HTML5现在可以说是前端所有技术的代名词.需要学习的语言和工具不仅多,对于刚接触他们的新人会感觉很乱.另外,前端开发也会细分很多个开发岗位,不同 ...

  2. P3376 网络最大流模板(Dinic + dfs多路增广优化 + 炸点优化 + 当前弧优化)

    ### P3376 题目链接 ### 这里讲一下三种优化的实现以及正确性. 1.dfs多路增广优化 一般的Dinic算法中是这样的,bfs() 用于标记多条增广路,以至于能一次 bfs() 出多次 d ...

  3. 微信小程序反编译

    看到一个有意思的小程序,想了解是如何实现的,于是找了反编译方法. 安装adb驱动 百度安装adb驱动, 设计设置开发者模式,连接电脑. -> % adb devices List of devi ...

  4. laravel集成workerman,使用异步mysql,redis组件时,报错EventBaseConfig::FEATURE_FDS not supported on Windows

    由于laravel项目中集成了workerman,因业务需要,需要使用异步的mysql和redis组件. composer require react/mysql composer require c ...

  5. 如何在GibHub上传自己的项目

    如何上传项目至GinHub 准备好项目.在项目ssm-crud的目录下右击,点击Git Bash Here,打开git命令行. 在命令行中,输入git init,使项目文件夹加入git管理: 输入gi ...

  6. linux shell中$0,$?,$!等的特殊用法

    记录下linux shell下的特殊用法及参数的说明 变量说明: $$Shell本身的PID(ProcessID)$!Shell最后运行的后台Process的PID$?最后运行的命令的结束代码(返回值 ...

  7. kafka以及消息队列详解

    Kafka 是LinkedIn 开发的一个高性能.分布式的消息系统. 用途:广泛用于日志收集.流式数据处理.在线和离线消息分发等场景. 1. Kafka 将消息流按Topic 组织,保存消息的服务器称 ...

  8. 02Javascript变量和数据类型

    1. 变量概述 1.1 什么是变量 通俗:变量是用于存放数据的容器. 我们通过 变量名 获取数据,甚至数据可以修改. 1.2 变量在内存中的存储 本质:变量是程序在内存中申请的一块用来存放数据的空间. ...

  9. Vue.js 源码分析(六) 基础篇 计算属性 computed 属性详解

    模板内的表达式非常便利,但是设计它们的初衷是用于简单运算的.在模板中放入太多的逻辑会让模板过重且难以维护,比如: <div id="example">{{ messag ...

  10. 创建Npm脚手架

    1工具 l  Npm ( https://nodejs.org/en/ ) l  Yeoman (npm install -g yo) l  generator-generator (npm inst ...