选择器进阶与表单表格

华子目录

  • 选择器
    • 并集选择器
    • 后代选择器
    • 子代选择器
    • 伪类选择器
    • 伪元素选择器
    • 结构选择器
    • 属性选择器
    • 相邻选择器
  • 表单(form)
    • label标签
  • 表格(table标签)
    • 合并单元格

选择器

下面是我们之前学习过的选择器

*{}:通配符选择器,选择网页里面的所有元素
.class名{}:类选择器,选择网页里面所有带有class="xxx"的标签元素
#id名{}:id选择器,选择网页里面带有id="xxx"的标签元素
标签名{}:标签选择器,选中网页里的所有这个标签

下面是选择器补充

ul,li{}:并集选择器,一次性可以选择多个目录(以逗号隔开,相当于两者都是一样的规则)
.msg p{}:后代选择器,选择.msg里面的所有p标签(以空格隔开)
.msg > p{}:子代选择器,选择msg里面子元素中的p标签(孙子,曾孙不选)(亲儿子元素,孙子和重孙都不归他管)

并集选择器

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Practise</title><style>.box1,.box2{ /*并集选择器以逗号隔开*/width: 100px;height: 100px;background-color: red;}</style>
</head>
<body><div class="box1"></div><div class="box2">牛肉面</div>
</body>
</html>

在这里插入图片描述

后代选择器

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Practise</title><style>.msg p{  /*后代选择器:选中div下的所有p标签*/color: blue;}</style>
</head>
<body><div class="msg"><p>方便面</p><p>牛肉面</p><p>香辣面</p></div>
</body>
</html>

在这里插入图片描述

子代选择器

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Practise</title><style>.msg > p{ /*子代选择器:选择类为msg的div下的所有p标签,不选类名为box下的p标签*/color: blue;font-size: 20px;}</style>
</head>
<body><div class="msg"><p>方便面</p><p>牛肉面</p><div class="box"><p>蹭面</p></div><p>香辣面</p></div>
</body>
</html>

伪类选择器

相当于在特定情况下,给标签触发样式

元素:hover{}----->当鼠标悬停时,触发样式
元素:active{}----->当鼠标按下元素,触发样式
元素:visited{}----->当a标签被访问过时,触发样式
元素:link{}----->当a标签未被访问过时,触发样式
爱恨准则:先爱后恨
LOVE HATE
css有个规定:四个伪类顺序必须是按照(爱恨准则)否则会有伪类不生效
link > visited > hover > active
元素:focus 获得焦点
元素:checked (单选/多选)表单被勾选状态
<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Document</title><style>*{margin: 0;padding: 0;}input,button{outline: none;/*清除默认焦点*/}.btn{border: 1px solid red;}.btn:focus{  /*点击input,获取焦点*/border: 1px solid blue;}.text{display:none;/*在网页中不显示,也不占地方*/background-color: red;}.btn:focus+.text{  /*相邻选择器:选中对应元素的下一个兄弟元素*/display: block;/*显示*/}.rad:checked{/*当表单被勾选时,宽扩大到100px,高扩大到100px*/width: 100px;height: 100px;}</style>
</head>
<body><input type="text" class="btn"><p class="text">我是渣渣辉,当你获取焦点时就可以看到我</p><label for=""><input class="rad" type="radio" name="ty"></label><label for=""><input class="rad" type="radio" name="ty"></label>
</body>
</html>
<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Practise</title><style>*{margin: 0;padding: 0;}.box{width: 100px;height: 100px;background-color: blue;}.box:hover{     /*当鼠标悬停在box盒子上时,变为红色,盒子大小扩大1倍*/width: 200px;height: 200px;background-color: red;}</style>
</head>
<body><div class="box"></div>
</body>
</html>
<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Practise</title><style>*{margin: 0;padding: 0;}.box{width: 100px;height: 100px;background-color: blue;}.box:hover{     /*当鼠标悬停在box盒子上时,变为红色,盒子大小扩大1倍*/width: 200px;height: 200px;background-color: red;}.box:active{   /*当鼠标按下时,盒子变为黄色*/background-color: yellow;}</style>
</head>
<body><div class="box"></div>
</body>
</html>

伪元素选择器

相当于创建一个虚拟元素

元素:before{content:'内容'}---->在元素前面添加一个子元素
元素:after{content:'内容'}---->在元素后面添加一个子元素
注:必须拥有content属性样式,上述两个伪元素才会被激活作用体现在:如果你希望网页里的部分内容(文字/图片)不能被选中或下载就使用伪元素。1.性能更好:伪元素并不是真实存在的,只能看不能用,不能被选中,所以减少了交互需求,性能更好2.安全性更好:只能看不能用,不能取用内容3.伪元素可以用css创建元素,而不需要html标签,简化了html结构
<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Document</title><style>.box::before{content: '我爱吃';}.box::after{content: '麦当';}</style>
</head>
<body><span class="box">QQ糖</span>
</body>
</html>

结构选择器

元素:nth-child(下标){}--->根据下标指定元素,数据从1开始计算
元素:nth-last-child(下标){}--->根据下标指定元素,数据从最后开始计算
元素:first-child{}--->选中第一个子元素
元素:last-child{}--->选中最后一个子元素
元素:nth-of-type(下标){}--->根据下标指定元素(优先指定类型,忽略其他的类型)
元素:nth-last-of-type(下标){}--->根据下标指定元素(优先指定类型,忽略其他的类型)
<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Document</title><style>.box:nth-last-child(1){color: red;}.box:nth-child(1){color: blue;}</style>
</head>
<body><div><p class="box">语文</p><p class="box">数学</p><p class="box">英语</p><p class="box">化学</p></div>
</body>
</html>

在这里插入图片描述

属性选择器

元素[属性名]{}--->包含有指定属性名的元素
元素[属性名=值]{}--->属性名的值为指定值的元素
元素[属性名*=值]{}--->属性名的值包含指定值的元素
元素[属性名^=值]{}--->属性名的值以指定值开头的元素
元素[属性名$=值]{}--->属性名的值以指定值结尾的元素
<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Document</title><style>div p[class='box1']{color: red;}div p[class$='4']{ /*以4结尾的属性值*/color: blue;}</style>
</head>
<body><div><p class="box1">语文</p><p class="box2">数学</p><p class="box3">英语</p><p class="box4">化学</p></div>
</body>
</html>

相邻选择器

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Document</title><style>*{margin: 0;padding: 0;}input,button{outline: none;/*清除默认焦点*/}.btn{border: 1px solid red;}.btn:focus{  /*点击input,获取焦点*/border: 1px solid blue;}.text{display:none;/*在网页中不显示,也不占地方*/background-color: red;}.btn:focus+.text{  /*相邻选择器:选中对应元素的下一个兄弟元素*/display: block;/*显示*/}</style>
</head>
<body><input type="text" class="btn"><p class="text">我是渣渣辉,当你获取焦点时就可以看到我</p>
</body>
</html>

表单(form)

提供一个让用户进行交互的窗口(输入框,选择框,提交按钮)

form属性:action=数据提交的位置(要把数据提交到后台/数据库)method=数据提交方式https请求格式:(get/post)默认是get(get只是拿数据只能看,post拿数据的同时传一些数据)
form功能控件(标签)(form标签中的标签)input--->输入框(行内元素标签)textarea--->多行输入框(都可以设置输入提醒属性:placeholder)(行内元素标签)label--->为表单中的各个控件定义标题(通常使用在表单内 他通常关联一个控件)(行内元素标签)select--->下拉菜单(行内元素标签)option--->下拉菜单里的选项button--->按钮,一般是结合js做操作(行内元素标签)
input属性type--->输入类型placeholder--->文本框提示语
input类型typetext--->文本框password--->密码框checkbox--->多选框radio--->单选框,基于name判断submit--->提交按钮file--->文件上传url--->输入网址reset--->重置表达内容
value:设置控件值
name:设置控件名
<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Document</title>
</head>
<body><form action=""><!-- 当行文本框 -->姓名<input type="text" placeholder="请输入姓名"><!-- 多行文本框输入 --><textarea name="" id="" cols="30" rows="10" placeholder="请输入兴趣"></textarea><!-- 下拉菜单 --><select name="" id=""><option value="">语文</option><option value="">数学</option><option value="">英语</option></select><!-- 普通按钮 --><button>点我起飞</button><label for="username">性别</label><input type="text" id="username"><label for="">姓名<input type="text"></label><hr><!-- 密码框 --><label for="">请输入密码<input type="password"></label><!-- 多选框 --><label for="">肉类<input type="checkbox"></label><label for="">蔬菜<input type="checkbox"></label><br><!-- 单选框 --><label for=""><input type="radio" name="ky"></label><label for=""><input type="radio" name="ky"></label><br><!-- 提交按钮 --><input type="submit" value="点我"><br><!-- 单个文件上传 --><input type="file"><br><!-- 多个文件上传 --><input type="file" multiple><br><!-- 重置 --><input type="reset"><br><!-- 网址输入框 --><label for="">网址输入框<input type="url"></label><input type="submit"><br><!-- 数字输入框 --><label for="">输入数字<input type="number" max="100" min="0" step="5"></label></form>
</body>
</html>

在这里插入图片描述

label标签

通常使用在表单内,他通常关联一个控件(form标签中的标签)
其中for属性功能表示这个label是为哪个控件服务的

第一种写法<label >姓名<input type="text"></label>
第二种写法
<label for="username">姓名</label>
<input type="text" id="username">

表格(table标签)

使用table标签来定义表格
注:不支持排序,求和等数学计算,只是用来展示数据

表格table组成:(都是标签)table:表格标签caption:表格标题tr:表格的行(内容都是在行里)th:表格的头(字体会加粗,代表一列的标题,文本信息上下左右居中并且加粗)td:表格单元格(代表每一项,文本信息上下居中需要在table选择器里面加text-align: center;文本居中)
<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Document</title><style>*{margin: 0;padding: 0;}table{width: 500px;border: 1px solid red;text-align: center;/*内容居中*/border-collapse: collapse;/*把表格变成单边边框线*/}td,th{border: 1px solid red;}.td1{height: 100px;}.td2{width: 400px;}</style>
</head>
<body><table><caption>兴趣爱好表</caption><tr><th>姓名</th><th>年龄</th><th>爱好</th></tr><tr><td class="td1">小川</td><td>18</td><td>干饭</td></tr><tr><td class="td2">小明</td><td>20</td><td>足球</td></tr></table><!-- 一行中,单元格的宽度/高度,取决于一行里面最高的那个 --><!-- 一行中,单元格的宽度高度是按照内容来进行分配的,其他都是等比例缩放 -->
</body>
</html>

在这里插入图片描述

合并单元格

将水平或者垂直多个单元格合并成一个单元格
给保留的单元格设置:跨行合并(rowspan)或者垮列合并(colspan)
<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Document</title><style>*{margin: 0;padding: 0;}table{width: 500px;border: 1px solid red;text-align: center;/*内容居中*/border-collapse: collapse;/*把表格变成单边边框线*/}td,th{border: 1px solid red;}</style>
</head>
<body><table><caption>兴趣爱好表</caption><tr><th>姓名</th><th>年龄</th><th>爱好</th></tr><tr><td>小川</td><td rowspan="2">18</td>  <!--合并两行--><td>干饭</td></tr><tr><td colspan="3">小明</td>  <!--合并三列--><td>20</td><td>足球</td></tr></table><!-- 如果合并前有内容,那么在合并的时候,就会把内容区挤到一边去 -->
</body>
</html>

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/81669.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

GaussDB(DWS)云原生数仓技术解析:湖仓一体,体验与大数据互联互通

文章目录 前言一、关于数据仓库需求场景分类二、数据仓库线下部署场景2.1、线下部署场景介绍及优劣势说明2.2、线下部署场景对应的客户需求 三、数据仓库公有云部署场景3.1、公有云部署场景介绍及优劣势说明3.2、公有云部署场景对应的客户需求 四、为何重视数据共享&#xff08…

Mybatis中动态SQL标签和内置参数介绍

Mybatis中动态SQL标签和内置参数 一、MyBatis动态SQL 1.1、sql标签 sql标签用于抽取公用的SQL代码&#xff0c;定义sql标签的时候需要通过【id】属性设置唯一标识。 <?xml version"1.0" encoding"UTF-8" ?> <!DOCTYPE mapperPUBLIC "-…

怎么压缩word文档?

怎么压缩word文档&#xff1f;在互联网技术飞速发展的当代&#xff0c;我们越来越多地依赖于电子文档来传递信息。然而&#xff0c;有时候文件的大小会成为我们传输和存储的一大限制。就拿我们每天都需要使用到的word文档来说吧&#xff0c;我们经常会使用到非常多的word文档&a…

linux 强大的搜索命令 grep

单文件搜索grep 搜索内容 文件多文件搜索 grep -r ‘搜索内容’ 目录

C#,《小白学程序》第二十六课:大数乘法(BigInteger Multiply)的Toom-Cook 3算法及源程序

凑数的&#xff0c;仅供参考。 1 文本格式 /// <summary> /// 《小白学程序》第二十六课&#xff1a;大数&#xff08;BigInteger&#xff09;的Toom-Cook 3乘法 /// Toom-Cook 3-Way Multiplication /// </summary> /// <param name"a"></par…

Ansible自动化:简化你的运维任务

&#x1f337;&#x1f341; 博主猫头虎&#xff08;&#x1f405;&#x1f43e;&#xff09;带您 Go to New World✨&#x1f341; &#x1f984; 博客首页——&#x1f405;&#x1f43e;猫头虎的博客&#x1f390; &#x1f433; 《面试题大全专栏》 &#x1f995; 文章图文…

Matlab图像处理-HSI模型

HSI模型 HSI模型是从人的视觉系统出发&#xff0c;直接使用颜色三要素色调(Hue)、饱和度(Saturation)和亮度&#xff08;Intensity&#xff09;来描述颜色。 亮度是指人眼感知光线的明暗程度。光的能量越大&#xff0c;亮度就越大。 色调是颜色最重要的属性。 它决定了颜色的…

GeoServer(配合Tomcat)安装与配置

GeoServer是什么&#xff1f; GeoServer是用于共享地理空间数据的开源服务器。专为互操作性而设计&#xff0c;它使用开放标准发布来自任何主要空间数据源的数据。GeoServer实现了行业标准的OGC协议&#xff0c;例如Web功能服务 (WFS)&#xff0c;Web地图服务 (WMS) 和Web覆盖…

C++之vector迭代器函数begin、end、rebegin、rend、cbegin、cend、crbegin、crend总结(二百零一)

简介&#xff1a; CSDN博客专家&#xff0c;专注Android/Linux系统&#xff0c;分享多mic语音方案、音视频、编解码等技术&#xff0c;与大家一起成长&#xff01; 优质专栏&#xff1a;Audio工程师进阶系列【原创干货持续更新中……】&#x1f680; 人生格言&#xff1a; 人生…

深度学习(Python)学习笔记2

第二章 感知机 2.1 感知机是什么 感知机接收多个输入信号,输出一个信号。 感知机的信号会形成流,向前方输送信息。 感知机的信号只有“流/不流”(1/0)两种取值。 本学习笔记中,0对应“不传递信号”,1对应“传递信号”。 图中、是输入信号,是输出信号,、是权重。图…

小米6/6X/米8/米9手机刷入鸿蒙HarmonyOS.4.0系统-刷机包下载-遥遥领先

小米手机除了解锁root权限&#xff0c;刷GSI和第三方ROM也是米粉的一大爱好&#xff0c;这不&#xff0c;在华为发布了HarmonyOS.4.0系统后不久&#xff0c;我们小米用户也成功将自己的手机干山了HarmonyOS.4.0系统。虽然干上去HarmonyOS.4.0系统目前BUG非常多&#xff0c;根本…

LeetCode刷题笔记【33】:动态规划专题-5(最后一块石头的重量 II、目标和、一和零)

文章目录 前置知识1049. 最后一块石头的重量 II题目描述解题思路代码 494. 目标和题目描述用回溯算法转换为背包问题动态规划 474.一和零题目描述解题思路代码 总结 前置知识 今天是动态规划专题的第5篇, 也是背包问题的第2篇. 所以本文和动态规划专题的1~3弱相关, 和上一篇, …

Prometheus-PushGateway自定义监控项

文章目录 一、前言二、PushGateway安装三、PushGateway的使用四、PushGateway脚本思路 一、前言 pushgateway相比较exporter是主动向服务器发送请求&#xff0c;pushgateway本身也是一个程序&#xff0c;可以运行在任意节点上(不是必须在被监控端)&#xff0c;运行本身没有抓取…

项目:TCP在线云词典

一.要求 1.搭建的框架环境中实现并发&#xff0c;实现多个用户同时查询的功能。 2.服务器分别保存每个用户的使用记录&#xff0c;客户端可以查询日志的功能。 3.基本的查询单词的功能。 4.密码验证的功能&#xff0c;实现登录验证账号和密码是否正确。 二.流程和框架 框架 …

【Python+selenium】生成测试报告

批量执行完用例后&#xff0c;生成的测试报告是文本形式的&#xff0c;不够直观&#xff0c;为了更好的展示测试报告&#xff0c;最好是生成HTML格式的。 unittest里面是不能生成html格式报告的&#xff0c;需要导入一个第三方的模块&#xff1a;HTMLTestRunner 一、导入HTMLT…

蓝牙技术|多快好省的苹果Find My查找定位方案商:北京自在科技

在电子市场里&#xff0c;各种蓝牙定位器品牌争奇斗艳&#xff0c;例如国外的Tile Mate 和 Slim&#xff0c;三星的 Galaxy SmartTag 和 Galaxy SmartTag&#xff0c;Chipolo 的ONE Spot&#xff0c;还有苹果的 AirTag 等等。而国内也有着不少优秀的品牌&#xff0c;如Nutale的…

多输入多输出 | MATLAB实现CNN-LSTM-Attention卷积神经网络-长短期记忆网络结合SE注意力机制的多输入多输出预测

多输入多输出 | MATLAB实现CNN-LSTM-Attention卷积神经网络-长短期记忆网络结合SE注意力机制的多输入多输出预测 目录 多输入多输出 | MATLAB实现CNN-LSTM-Attention卷积神经网络-长短期记忆网络结合SE注意力机制的多输入多输出预测预测效果基本介绍程序设计往期精彩参考资料 预…

python抠图(去水印)开源库lama-cleaner入门应用实践

1. 关于 Lama Cleaner Lama Cleaner 是由 SOTA AI 模型提供支持的免费开源图像修复工具。可以从图片中移除任何不需要的物体、缺陷和人&#xff0c;或者擦除并替换&#xff08;powered by stable diffusion&#xff09;图片上的任何东西。 特征&#xff1a; 完全免费开源&am…

YOLO物体检测-系列教程2:YOLOV2整体解读

&#x1f388;&#x1f388;&#x1f388;YOLO 系列教程 总目录 YOLOV1整体解读 YOLOV2整体解读 YOLOV2提出论文&#xff1a;YOLO9000: Better, Faster, Stronger 1、YOLOV1 优点&#xff1a;快速&#xff0c;简单&#xff01;问题1&#xff1a;每个Cell只预测一个类别&…

ros----发布者和订阅者模型

话题模型&#xff1a; 如何自定义话题消息 1.定义msg文件 2.在package.xml中添加功能包依赖 <build_depend>message_generation</build_depend> <exec_depend>message_runtime</exec_depend>3.在CMakeList.txt文件中添加编译选项 4.编译生成语言的相…