H5新增好用

文章介绍了HTML5中的calc()函数用于动态计算长度值,新增的语义化标签如<header>,<section>,<article>等提升网页结构,以及新的表单控件如number,search,color等,还有属性选择器的使用,增强了CSS的选择和样式设定能力。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

calc

calc()里面写的是表达式   加减乘除都可以     运算符前后需要有空格隔开

 div{
     width: calc(193px + 327px);
     height: calc(367px - 189px);
     background: red;
 }

html5新增语义化标签

 header/* 头部 */

<section>区域块</section>
<nav>导航栏</nav>
<main>
<figure>类似dl
<figcaption>就是可以写文字啥的  请注意位置  要么是figure里面第一个子元素  要么是figure里面最后一个子元素
<footer><!-- 尾部 -->
<article>文章  类似多个p的集合 也是块元素</article>
<hgroup>是标题的集合  但是不会加粗  可以代表标题</hgroup>
     <!-- 侧边栏   可以是某一大块的侧边  比如腾讯大学右边 -->
    <!-- 也可以是固定在页面的左右侧边 -->
<aside>哈哈哈</aside>
行内<time>时间</time>
      <!-- 行内元素  高亮  默认有黄色背景色 -->
<mark>变黄</mark>
     <!-- 对话框 -->
<dialog>哈哈哈</dialog>
<audio src="音频文件就可以">
     <audio controls autoplay loop muted>
        <!-- 资源管理器   source 引入不同格式的音频  -->
        <!-- type="audio/音频格式"介绍这个音频文件是啥格式   可以不写 -->
        <source src="../video/3theA.mp4" type="audio/mepg">
        <source src="../video/a.mp3" type="audio/mepg">
        <source src="../video/movie.webm" type="audio/webm">
        <source src="../video/movie.ogg" type="audio/ogg">
         </audio>
          controls  控制条
    autoplay  自动播放  
    loop    循环播放   如果写loop=2就是播放两次
    muted  默认静音
    <!-- 视频的引入 vedio-->
<video controls autoplay loop muted>
        <source src="../video/3theA.mp4" type="video/mp4">
        <source src="../video/movie.ogg" type="video/ogg">
        <source src="../video/movie.webm" type="video/webm">
    </video>

H5新增表单控件

<!-- 1.数字框 -->
        <!-- min="最小值" -->
        <!-- max="最大值" -->
        <!-- step="5"间隔是5 -->
<p>数字框:<input type="number" min="10" max="20" step="5"></p>
<!-- 2、搜素框 -->
        <p>搜索框:<input type="search"></p>
        <!-- 3、颜色框 -->
        <p>颜色框:<input type="color"></p>
        <!-- 4、电话框 -->
        <p>电话框:<input type="tel"></p>
        <!-- 5、滑动条 -->
        <!-- step="10"间隔是10   比如说 用于调整音量  那么你每按一次↑键   音量会加10      每按一次↓键  音量会减10    如果你不设置  默认是1 -->
        <p>滑动条:<input type="range"></p>
        <p>滑动条:<input type="range" step="10"></p>
 <!-- 6、网址框 -->
        <!-- multiple可以同时输入多个值    英文逗号隔开  -->
        <p>网址框:<input type="url"></p>
        <!-- 可以同时输入多个网址 英文逗号隔开 -->
        <p>网址框:<input type="url" multiple></p>

        <!-- 7、邮箱框 -->
        <!-- multiple可以同时输入多个值    英文逗号隔开  -->
        <p>邮箱:<input type="email"></p>
        <p>邮箱:<input type="email" multiple></p>
        
        <!-- 8、时间相关的 -->
        <!-- 年月 -->
        <input type="month">
        <!-- 年周 -->
        <input type="week">
        <!-- 年月日 -->
        <input type="date">
        <!-- 时分 -->
        <input type="time">
        <!-- 年月日时分 -->
        <input type="datetime-local">
        <hr>
        <!-- 9、了解  -->
        <!-- <input type="text" list="对应id名字">
        <datalist id="id名字"></datalist>
        上面这样子写   就把datalist和input绑定了 -->
 <input type="text" list="gouzi">
        <datalist id="gouzi">
            <option value="彭于晏" label="最帅的男人"></option>
            <option value="三哥" label="最man的男人"></option>
            <option value="高尔山" label="最阳光的男人"></option>
            <option value="老叔" label="最性感的男人"></option>
            <option value="矿工" label="最勤劳的男人"></option>
            <option value="张长宾" label="最优质的男人"></option>
            <option value="高圆圆" label="男人最喜欢的女人"></option>
        </datalist>

<!-- H5新增的表单属性 -->
        <!-- 1、虚焦的提示信息 -->
        <p>1、虚焦的提示信 <input type="text" placeholder="请输入"></p>
        <!-- 2、最大值 max="数字" -->
        <!-- 3、最小值 min="数字" -->
        <!-- 4、间隔、步幅  step="数字" -->
        <p>234 最大值 最小值  步幅   <input type="number" min="10" max="30" step="3"></p>

        <!-- 5、必填项 required -->
        <p>5、必填项 <input type="text" required></p>

        <!-- 6、只读项   只可以看  不能更改  readonly -->
        <p>6、只读项 <input type="text" value="哈哈哈" readonly></p>

        <!-- 7、自动聚焦 autofocus-->
        <p>7、自动聚焦 <input type="text" autofocus></p>

        <!-- 8、可以同时输入多个值  可以输入一个或多个值,每个值之间用逗号分开  multiple -->
        <p>8、可以同时输入多个值 <input type="url" multiple></p>

        <!-- 9、正则表达式 pattern="正则表达式"   请注意   二阶段会学  现在了解就好 -->
        <input type="text" pattern="[a-z]{6}"> <!-- 表示可以随机输入小写6个英文 -->

        <!-- 10、list属性:
        结合datalist元素使用 -->
        <!-- <input type="text" list="对应id名字">
        <datalist id="id名字"></datalist>
        上面这样子写   就把datalist和input绑定了 -->

        <!-- 11、autocomplete属性:自动补全  历史记录 -->
        <input type="text" list="gouzi" autocomplete="off">
        <datalist id="gouzi">
            <option value="彭于晏" label="最帅的男人"></option>
            <option value="三哥" label="最man的男人"></option>
            <option value="高尔山" label="最阳光的男人"></option>
            <option value="老叔" label="最性感的男人"></option>
            <option value="矿工" label="最勤劳的男人"></option>
            <option value="张长宾" label="最优质的男人"></option>
            <option value="高圆圆" label="男人最喜欢的女人"></option>
        </datalist>

        <!-- 12、取消验证novalidate  你个哪一个表单标签设置上  那么你之前给他设置的验证信息将失效   还可以给form  -->

新增属性选择器

 /* 1、属性选择器    */
        /* 代表有placeholder属性的input框 */
        input[placeholder]{
            background: red;
        }

        /* 2、属性值选择器 */
        /* 代表type属性值为password的input框 */
        input[type="password"]{
            background: palegreen;
        }
        /* 代表选中 value属性值为abc的input */
        input[value="abc"]{
            background: yellow;
        }
        /* -------------------属性选择器 的  升级版------ */
        /* 3、属性值开头选择器^   英文输入法状态下  按住shift按键  按上方数字6 */
        input[value^="abc"]{
            background: cyan;
        }

        /* 4、属性值结尾选择器  $   英文输入法状态下  按住shift按键  按上方数字4*/
        input[value$="abc"]{
            background: orange;
        }

        /* 5、 但凡有就行 属性值选择器   无论在前 在后  在中间   有就行  *   */
        input[value*="abc"]{
            background: palegreen;
        }

        /* 6、有abc这个单词    啥叫单词   空格隔开  单纯的abc  属性值是一个词列表,并且以空格隔开,其中词列表中包含了一个value词 */
        input[value~="abc"]{
            background: blue;
        }

        /* 7、只有abc这个单词   或者是abc- 这样子的  可以识别出来     |    英文输入法状态下  按住shift按键 按enter上方  "|"按键 
        并且属性值是value或者以“value-”开头的值(比如说zh-cn)*/
        input[value|="abc"]{
            background: purple;
        }

p:nth-child使用及其弊端

1. /* 结构性伪类 :nth-child() 一会儿还会说另一个 */
        /* 选中第一个li */
        li:nth-child(1){
            background: pink;
        }
        /* 还可以这样子选中第一个 */
        li:first-child{
            background: skyblue;
        }

        /* 选中最后一个   第一种方式就是数一数有多少个 */
        li:nth-child(13){
            background: palegreen;
        }
        /* 还可以这样子选中最后一个 */
        li:last-child{
            background: purple;
        }

        /* 我们可以随机选择某一个  比如说第四个 */
        li:nth-child(4){
            background: cyan;
        }

        /* 我们还可以倒数选中第几个 */
        li:nth-last-child(2){
            /* 倒数第二个             */
            background: yellow;
        }



        /* ------其实还可以书写数学表达式----- */
        /* 选中奇数行 */
        li:nth-child(2n+1){
            background: red;
        }
        /* 当然  还可以这样子表示奇数   odd */
        li:nth-child(odd){
            background: yellow;
        }

        /* 选中偶数行 */
        li:nth-child(2n){
            background: cyan;
        }
        /* 当然  还可以这样子表示偶数 */
        li:nth-child(even){
            background: purple
        }
2.弊端
/* p:nth-child(3){  先去找到第三个位置   结果发现是span  不是p  所以p:nthh-child(3)无效
            background: red;
        } */


        p:nth-child(4){
            /* 先找到第四个位置   核对是不是p标签啊   是    可以作用 */
            background: red;
        }


        /* :nth-child()先找位置   再核对元素是否为对应的 */
    </style>
</head>
<body>
    <p>1</p>
    <p>2</p>
    <span>会打乱秩序</span>
    <p>3</p>
    <p>4</p>

了解

X:only-child这个伪类一般用的比较少,比如上述代码匹配的是div下的有且仅有一个的p,也就是说,如果div内有多个p,将不匹配。

:root匹配文档的根元素。在HTML(标准通用标记语言下的一个应用)中,根元素永远是HTML

X:empty匹配没有任何子元素(包括包含文本)的元素X -->

nth-of-type

  /* div:nth-of-type() */
        /* 他是先把所有div拎出来   然后再去找第几个 */

        /* 你可以这样子选中第一个 */
        li:nth-of-type(1){
            background: red;
        }
        /* 你还可以这样子选中第一个 */
        li:first-of-type{
            background: yellow;
        }

        /* 你可以选中最后一个 */
        li:nth-of-type(9){
            background: cyan;
        }
        /* 你还可以这样子写 */
        li:last-of-type{
            background: olive;
        }

        /* 你可以选中某个 */
        li:nth-of-type(4){
            background: palegreen;
        }

        /* 你还可以选中倒数第几个 */
        li:nth-last-of-type(3){
            background: purple;
        }

        /* 你还可以数学表达式     奇数2n+1  或者odd      偶数是2n或者even */
        li:nth-of-type(4n){
            font-size: 30px;
            color:#f00;
        }
### HTML5 中新增的 Input 类型及属性 HTML5 的推出极大地扩展了 `<input>` 元素的功能,增加了多种新类型的输入控件以及一些实用的新属性。这些改进使得开发者能够更方便地处理各种数据类型并提升用户体验。 #### 新增的 Input 类型 以下是 HTML5 中新增的一些重要 `type` 属性值: 1. **email** - 用于指定电子邮件地址的输入框。 - 浏览器会验证该字段的内容是否符合标准的电子邮件格式[^1]。 2. **url** - 提供了一个专门用来输入 URL 地址的文本框。 - 输入的数据会被自动校验以确保其是一个合法的网址。 3. **number** - 创建一个允许用户输入数值的控件。 - 支持上下箭头调整数字大小,并可以设置最小值 (`min`) 和最大值 (`max`) 范围。 4. **range** - 表现为滑动条形式的一个数值选择器。 - 用户可以通过拖拽滑块来选取某个范围内的整数或浮点数值。 5. **date**, **time**, **datetime-local**, **month**, **week** - 这些类型分别提供了不同的日期时间选择功能。 - `date`: 让用户挑选具体某一天。 - `time`: 设置特定时刻。 - `datetime-local`: 结合日期和本地时间为单一单元格。 - `month`: 如同名称所示仅限于月份的选择[^3]。 6. **color** - 打开颜色拾取对话框让用户选定一种色彩作为返回值。 7. **search** - 定义搜索引擎查询字符串使用的特殊文本区域。 - 外观上可能稍有不同以便提示这是搜索栏而非普通文字录入区[^2]。 8. **tel** - 预留给电话号码用途的输入方式。 - 不做任何内置格式化检查但由于设备特性可能会触发拨号键盘布局优化。 9. **file** (增强) - 原本就存在但在新版中有更多选项支持多文件上传等功能。 #### 新增的重要属性 除了上述提到的各种新型态之外还有一些通用或者针对某些种类特别设计出来的附加参数可供配置: 1. **placeholder** - 显示灰色占位符告诉访问者预期填入什么样的资料直到他们实际动手为止就会消失不见. 2. **required** - 强迫使用者必须填写此项目才能继续下一步骤操作比如提交表单之类的情况发生时才会生效. 3. **pattern** - 接受正则表达式的模式匹配机制从而实现自定义规则下的有效性和错误反馈消息定制服务. 4. **autofocus** - 页面加载完成后立即聚焦到设定好的那个元素上面去无需额外动作即可获得焦点状态. 5. **readonly** - 将当前对象设为只读模式意味着虽然可见却无法修改内容除非另有说明解除限制才行. 6. **disabled** - 把组件暂时禁用掉既不可见也不能交互直至重新启用为止. 7. **autocomplete** - 控制网页上的个人历史记录能否被利用起来辅助快速完成常见重复性的任务像登录名密码之类的敏感信息安全保护措施之一就是将其关闭即 `"off"` 模式下运行[^4]. 下面给出一段综合运用以上特性的示范代码片段如下所示: ```html <!DOCTYPE html> <html lang="zh-CN"> <head> <meta charset="UTF-8"> <title>HTML5 Form Example</title> </head> <body> <form action="#" method="post" autocomplete="on"> <!-- Email Field --> <label for="email">电子邮箱:</label><br/> <input type="email" id="email" name="user_email" placeholder="请输入您的邮件..." required/><br/> <!-- Number Field with Range Constraints --> <label for="age">年龄:</label><br/> <input type="number" id="age" name="user_age" min="18" max="100"/><br/> <!-- Date Picker --> <label for="dob">出生日期:</label><br/> <input type="date" id="dob" name="user_dob"/><br/> <!-- Color Selector --> <label for="fav_color">最喜欢的颜色:</label><br/> <input type="color" id="fav_color" name="favorite_color"/> <!-- Submit Button --> <button type="submit">注册账户</button> </form> </body> </html> ```
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值