选择器进阶与表单表格

华子目录

  • 选择器
    • 并集选择器
    • 后代选择器
    • 子代选择器
    • 伪类选择器
    • 伪元素选择器
    • 结构选择器
    • 属性选择器
    • 相邻选择器
  • 表单(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.rhkb.cn/news/133081.html

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

相关文章

分销小程序商城功能_小程序商城适合谁_OctShop

微信推出小程序后&#xff0c;分销小程序商城就受到了非常多企业和商家的关注&#xff0c;通过分销商城小程序企业或商家就可以获得庞大的用户裂变过来的用户&#xff0c;组成一个不断裂变拉新用户的网络&#xff0c;可以大大提高企业或品牌的曝光度&#xff0c;从而提高企业或…

视频图像处理算法opencv模块硬件设计图像颜色识别模块

1、Opencv简介 OpenCV是一个基于Apache2.0许可&#xff08;开源&#xff09;发行的跨平台计算机视觉和机器学习软件库&#xff0c;可以运行在Linux、Windows、Android和Mac OS操作系统上 它轻量级而且高效——由一系列 C 函数和少量 C 类构成&#xff0c;同时提供了Python、Rub…

LeetCode 1282. Group the People Given the Group Size They Belong To【哈希表】1267

本文属于「征服LeetCode」系列文章之一&#xff0c;这一系列正式开始于2021/08/12。由于LeetCode上部分题目有锁&#xff0c;本系列将至少持续到刷完所有无锁题之日为止&#xff1b;由于LeetCode还在不断地创建新题&#xff0c;本系列的终止日期可能是永远。在这一系列刷题文章…

《优化接口设计的思路》系列:第二篇—接口用户上下文的设计与实现

系列文章导航 《优化接口设计的思路》系列&#xff1a;第一篇—接口参数的一些弯弯绕绕 《优化接口设计的思路》系列&#xff1a;第二篇—接口用户上下文的设计与实现 前言 大家好&#xff01;我是sum墨&#xff0c;一个一线的底层码农&#xff0c;平时喜欢研究和思考一些技术…

Peppertype.ai:人工智能内容营销平台

【产品介绍】 名称 Peppertype.ai 具体描述 Peppertype.ai是一个AI驱动的文章生成工具&#xff0c;可以帮助你在几秒钟内为各种渠道创建吸引人 的内容。无论你是想要写广告文案、社交媒体标题、博客大纲还是网站内容&#xff0c;Peppertype…

基于SpringBoot蜗牛兼职网的设计与实现【附PPT|万字文档(LW)和搭建文档】

主要功能 前台界面&#xff1a; ①首页、兼职信息推荐、查看更多等 ②职位申请、申请日期、上传简历、点击下载简历、留言反馈等 ③个人中心、上传图片、更新信息等 后台登录&#xff1a; ①用户登录&#xff1a; 个人中心、修改密码、个人信息、职位申请管理 ②企业登录&…

java在mysql中查询内容无法塞入实体类中,报错 all elements are null

目录 一、问题描述二、解决方案 一、问题描述 java项目中整体配置了mysql的驼峰式字段匹配规则。 mybatis.configuration.map-underscore-to-camel-casetrue由于项目需求&#xff0c;需要返回字段为file_id&#xff0c;file_url&#xff0c;并且放入实体类中&#xff0c;实体…

赢麻了!smardaten闷声干大事,竟然用无代码开发了复杂小程序!

本文目录 一、【前言】二、移动端项目实战&#xff1a;女性关爱云服务平台2.1 项目背景2.2 6大场景功能拆解&#xff08;1&#xff09;场景1-首页&#xff08;2&#xff09;场景2-找活动&#xff08;3&#xff09;场景3-找组织&#xff08;4&#xff09;场景4-找服务&#xff0…

无频闪护眼灯哪个好一点?盘点无频闪减蓝光护眼灯

可以肯定的是&#xff0c;护眼灯一般可以达到护眼的效果。看书和写字时&#xff0c;光线应适度&#xff0c;不宜过强或过暗&#xff0c;护眼灯光线较柔和&#xff0c;通常并不刺眼&#xff0c;眼球容易适应&#xff0c;可以防止光线过强或过暗导致的用眼疲劳。如果平时生活中需…

Unity中 UI Shader的基本功能

文章目录 前言一、实现思路1、暴露一个 2D 类型的属性来接受UI的纹理2、设置shader的层级为TransParent半透明渲染层级&#xff0c;一般UI都是在这个渲染层级3、更改混合模式&#xff0c;是 UI 使用的纹理&#xff0c;该透明的地方透明 二、代码实现 前言 Unity中 UI Shader的…

视频怎么压缩?把视频压缩的小一点这样做

视频压缩在我们的生活和工作中有着广泛的应用需求&#xff0c;是一种减少视频文件大小的方法&#xff0c;可以给我们带来以下几个方面的作用&#xff1a; 1、减少存储空间占用&#xff1a;视频压缩可以显著减少视频的大小&#xff0c;从而腾出更多的存储空间&#xff0c;对于手…

创建一个简单的外卖订餐系统

在今天的快节奏生活中&#xff0c;外卖订餐系统已经成为了人们日常生活中不可或缺的一部分。这些系统通过在线点餐和配送服务&#xff0c;为用户提供了便捷的用餐体验。在本文中&#xff0c;我们将创建一个简单的外卖订餐系统&#xff0c;使用Python和Flask框架构建后端&#x…

华为数通方向HCIP-DataCom H12-821题库(单选题:341-360)

第341题 在BGP中代表对等体之间已经建立连接的状态是以下哪一种? A、Active B、Connect C、Established D、Open 答案:C 第342题 以下关于路由选择工具的描述,错误的是哪一项? A、访问控制列表用于匹配路由信息或者数据包的地址,过滤不符合条件的路由信息或数据包 …

EXE文件加密器

EXE文件加密器V3.0&#xff0c;主要是用于对EXE文件进行加密 有需要的朋友下载 点我下载

Writesonic:博客和内容创作者的终极写作助手

【产品介绍】 产品名称 Writesonic 上线时间 成立于2020年 具体介绍 Writesonic是一个强大的人工智能写作助手&#xff0c;它使用自然语言处理&#xff08;NLP&#xff09;和机器学习算法来生成内容&#xff0c;这些内容不仅写得好&#xff0c;而且还为SEO和转…

归并排序和快速排序的两种实现

在此之前我们已经介绍过归并排序和快速排序&#xff1a;浅谈归并排序与快速排序&#xff0c;但其中的实现都是基于递归的。本文将重新温故这两种算法并给出基于迭代的实现。 目录 1. 归并排序1.1 基于递归1.2 基于迭代 2. 快速排序2.1 基于递归2.2 基于迭代 1. 归并排序 1.1 基…

JavaEE初阶(5)多线程案例(定时器、标准库中的定时器、实现定时器、线程池、标准库中的线程池、实现线程池)

接上次博客&#xff1a;JavaEE初阶&#xff08;4&#xff09;&#xff08;线程的状态、线程安全、synchronized、volatile、wait 和 notify、多线程的代码案例&#xff1a;单例模式——饿汉懒汉、阻塞队列&#xff09;_di-Dora的博客-CSDN博客 目录 多线程案例 定时器 标准…

MFC网络编程2——异步套接字

从上一节&#xff08;MFC网络编程1——网络基础及套接字 &#xff09;中&#xff0c;我们了解了网络的部分基础知识以及套接字的使用&#xff0c;这一节&#xff0c;我们学习异步套接字的使用。  Windows套接字在两种模式下执行I/O操作&#xff0c;阻塞模式和非阻塞模式。在阻…

麒麟v10安装Redis(ARM架构)

下载Redis安装包 华为开源镜像站_软件开发服务_华为云 上面的选择一个下载 或者用命令下载 wget https://repo.huaweicloud.com/kunpeng/yum/el/7/aarch64/Packages/bigdata/redis-5.0.5-1.el7.aarch64.rpm 检查是否已经安装Redis rpm -qa | grep redis将包卸载掉 rpm -e -…

探索数据库管理的利器 - PHPMyAdmin

有一个项目&#xff0c;后端由博主独自负责&#xff0c;最近需要将项目交接给另一位同事。在项目初期&#xff0c;博主直接在数据库中使用工具创建了相关表格&#xff0c;并在完成后利用PhpMyAdmin生成了一份数据字典&#xff0c;供团队使用。然而&#xff0c;在随后的开发过程…