前端学习系列——(九)理解什么是ID选择器的“唯一性”
在学习CSS样式的时候,我们肯定会遇到ID选择器。用法一类的这里就不说了,说一说对ID选择器可能存在的一个误区。
误区:id选择器具有唯一性?
<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Title</title><style type="text/css">#id {background-color: #00ff00;}</style>
</head>
<body>
<div style="width:200px"><p id="id">哦豁</p><p id="id">哦豁</p>
</div>
</body>
</html>
上面违反了一般教程中说到的唯一性,估计大部分初学者会认为,其中有一个标签的样式肯定不能生效,但实际上如下图
纳尼?两个都生效,这不是和类选择器一样了吗,都是通用的。OK,实际上这是对唯一性的理解错了,ID选择器设置的样式其实也能够文档中多次出现并使用。
但是!但是!但是!重要的转折说三边,在JS进行dom操作是就存在问题了,如下面的例子。
<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Title</title><style type="text/css">#id {background-color: #00ff00;}</style>
</head>
<body>
<div style="width:200px"><p id="id">哦豁</p><p id="id">哦豁</p>
</div>
<script type="text/javascript">document.getElementById("id").style.backgroundColor="#ff0000";
</script>
</body>
</html>
按照之前的想法,JS应该针对两个p标签都做了样式修改,但实际上只有第一个修改了。如下图
于是在这里就引申出了所谓的“唯一性”,它是针对JS而言的,当文档存在多个相同ID时,通过getElementById方法获取到的是在文档中第一个出现该ID的标签(DOM节点对象),故都推荐ID在文档中最好只出现一次,即“唯一性”。
在实际开发中,也是遵循这样的原则,class用于CSS布局,id用于JS操作DOM节点对象。
前端学习系列——(九)理解什么是ID选择器的“唯一性”相关推荐
- 【Web前端学习系列01】—HTML
[Web前端学习系列01]-HTML HTML 基本标签-head head title标签 meta标签 link标签 style标签 script标签 base标签 文本 标题标签 h 段落标签 ...
- Android音视频学习系列(九) — Android端实现rtmp推流
系列文章 Android音视频学习系列(一) - JNI从入门到精通 Android音视频学习系列(二) - 交叉编译动态库.静态库的入门 Android音视频学习系列(三) - Shell脚本入门 ...
- 重学前端学习笔记(二十二)--选择器的机制
笔记说明 重学前端是程劭非(winter)[前手机淘宝前端负责人]在极客时间开的一个专栏,每天10分钟,重构你的前端知识体系,笔者主要整理学习过程的一些要点笔记以及感悟,完整的可以加入winter的专 ...
- web前端学习day_02:CSS:三种使用方式/选择器/颜色/背景图片/查看样式/文本/元素显示方式/盒子模型/定位方式/行内对齐/显示层级/防溢出
CSS : Cascading Style Sheet 层叠样式表. 作用: 美化页面 CSS 如何在html页面中添加css样式代码?总共有三种方式: 1.选择器 2.选择器练习: 3.颜色赋值 4 ...
- coderwhy前端学习笔记九
外边距 - margin margin的其他值 <!DOCTYPE html> <html lang="en"> <head><meta ...
- 【Python学习系列九】Python机器学习库scikit-learn实现SVM案例
学习网址:http://scikit-learn.org/stable/modules/svm.html SVM案例代码: # -*- coding: utf-8 -*- __author__ = ' ...
- Android-音视频学习系列-(九)Android-端实现-rtmp-推流,零基础如何成为高级Android开发
camera.setDisplayOrientation(result); } 4.4 设置预览帧率 通过 Camera.Parameters 中 getSupportedPreviewFpsRang ...
- 吕鑫MFC学习系列九
CWinApp类的基类:CObject->CCmdTarget->CWinThread->CWinApp 一.CWinApp类成员变量: 1.WinMain的四个参数: // Sta ...
- 前端学习(九)页面导航栏页面最基本实现
我们常见的网站,页面的最上方都有个导航栏,例如CSDN的最上方的: 那我们也做一个这样的,首先element有这个控件"el-menu",那我们就按照示例做一个样子出来,类似于这样 ...
最新文章
- 百度定位sdk使用说明
- 自己动手调试Android源码(超简单)
- 数据结构 - 字符串 - 最长公共子序列 + 最长公共子字符串 - 动态规划
- OpenShift 4 - 向OpenShift内部Image Registry推送Image
- loginrequired注解_简单实现一个登录验证的注解来保护私有资源
- SAP License:SD条件类型对应科目配置
- ReactNative 自定义封装Radio单选组件
- 【数据结构】深度优先和广度优先比较
- 有关Kill Session问题的讨论(旧文初发)
- atitit.新增编辑功能 跟orm的实现 attilax p31
- 图像匹配之序贯相似性检测法匹配
- 计算机telnet命令大全,telnet 命令使用方法详解,telnet命令怎么用
- Windows:Win10 Dell笔记本禁用触摸板
- 区块链赋能金融科技!2018 PPP全球数字资产投资峰会在京召开
- 抗体链接InP/ZnS量子点|量子点InP/ZnS表面修饰抗体偶联服务-齐岳生物
- unity Debug.DrawLine画线
- RegSVR32 找不到指定模块问题解决
- RCNN算法思想简单讲解概述————(究极简单的讲述和理解)
- android之手机截屏小程序
- Altium Designer 制造输出 各文件后缀的含义
热门文章
- 与其道听途说,不如少走点弯路,轻松跟我来全面剖析 darknet 官网!
- PS中内容感知移动工具的使用
- 金大侠眼光果然犀利:《笑傲江湖》只值一块钱
- Vmware安装迷你版的 Centos6 并配置 Nat 模式可访问外网
- Unity3D——加入剑痕效果(PocketRPG Trail插件)
- import java.util.* cannot be resolved或import java.io.*cannot be resolved解决方案
- 罗永浩将举办“老人与海”黑科技发布会;京东正式宣告:全面向技术转型;英特尔因CPU短缺向PC厂商道歉 | EA周报...
- 解决httpClient 调用返回“ ip:port fail to respond ” 问题
- 微信公众号可以改名称了,只限个人订阅号!
- 分布式存储开发:Curve中的内存管理