HTML进阶

119 阅读5分钟

iframe

通常用于在网页中嵌入另一个网页。

iframe是一个可替换元素。

  1. 通常时行盒。
  2. 通常显示的内容取决于属性。
  3. css不能完全控制其中的样式。
  4. 具有行快盒的特点。(盒模型中各个尺寸是可以设置的)
<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        iframe {
            width: 100%;
            height: 500px;
        }
    </style>
</head>

<body>
    <a href="https://www.baidu.com" target="myfram">百度</a>
    <a href="https://www.taobao.com" target="myfram">淘宝</a>
    <iframe name="myfram" src="https://www.baidu.com" frameborder="0"></iframe>
</body>

</html>

在页面中使用flash

用来在网页中嵌入小游戏。有两种方式

  1. 通过 object元素,data属性表示资源地址,type属性表示资源类型。(可以通过百度百科搜索MIME(多用途互联网邮件类型),搜索文件后缀名来查看资源类型
  2. 通过 embed元素。
<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        object {
            width: 300px;
            height: 300px;
        }

        embed {
            width: 300px;
            height: 300px;
        }
    </style>
</head>

<body>
    <object data="test.swf" type="application/x-shockwave-flash">
        <!-- 可以传递参数 -->
        <param name="" value="">
    </object>

    <embed src="test.swf" type="application/x-shockwave-flash"></embed>

    <!-- 兼容写法 -->
    <object data="test.swf" type="application/x-shockwave-flash">
        <param name="movie" value="test.swf">
        <embed src="test.swf" type="application/x-shockwave-flash"></embed>
    </object>
</body>

</html>

表单元素

一系列元素,用来收集用户的信息。

input元素

输入框。

  • type属性:表示输入框的类型。

    取值:

    • text:普通文本输入框。
    • password:密码框。
    • date:日期选择框,有兼容性问题。
    • search:搜索框,有兼容性问题。
    • range:滑块 ,可以通过 min和max属性去设置最小值和最大值。
    • color:颜色选择。
    • number:数字输入框,通过min和max属性设置最大值和最小值,step属性设置步进。
    • checkbox:多选框,通过name属性辨别是哪个组,默认选中使用checket。
    • radio:单选框,通过name属性辨别是哪个组,默认选中使用checket。
    • file:表示选择文件。
  • value属性:表示输入框的值。

  • placeholder属性:显示提示的文本,文本框没有内容时显示。

select元素

下拉列表选择框。

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>

<body>
    <!-- 添加属性multiple可以选择多项 -->
    请选择城市:
    <select name="" id="" >
        <option value="1">北京</option>
        <option value="2">上海</option>
        <!-- 默认选中添加 seleted属性 -->
        <option value="3" selected>广州</option>
        <option value="4">深圳</option>
    </select>

    <!-- 分组 -->
    请选择喜欢的主播:
    <select name="" id="" multiple>
        <optgroup label="男主播">
            <option value="1">男主播1</option>
            <option value="2">男主播2</option>
        </optgroup>
        <optgroup label="女主播">
            <option value="3">女主播1</option>
            <option value="4">女主播2</option>
        </optgroup>
        </optgroup>
    </select>
</body>

</html>

textarea元素

文本域,多行文本网框。placrholder属性,cols属性:多少列 ,rows属性:多少行。默认显示内容需要写在标签里面。

按钮元素

button。

type属性:reset,submit,button,默认值是submit。

表单状态

readonly布尔属性,表示只读,不会改变表单样式。

disabled布尔属性,是否禁用,会改变表单样式。

配合表单元素的元素

label

普通元素,通常配合单选和多选框来使用。for属性表示关联到哪一个表单元素,值是表单元素的id。也可以直接将表单元素放在label元素里面

datalist

数据列表,子元素 option。(通过id来关联到文本框的list属性)

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>

<body>
    <p>
        请输入你常用的浏览器:<input list="userAgent" type="text"></p>

    <datalist id="userAgent">
        <option value="chrome">chrome</option>
        <option value="firefox">firefox</option>
        <option value="opera">opera</option>
        <option value="safari">safari</option>
    </datalist>
</body>

</html>

form元素

通常,会将表单元素包裹,作用是提交表单时,会将form元素内部的表单内容,以合适的方式提交到服务器。

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>

<body>
    <!-- action 提交给谁 method 提交方式  要求表单元素都要写name属性 -->
    <form action="https://www.baidu.com" method="get" enctype="application/x-www-form-urlencoded">
        <input type="text" name="username" placeholder="请输入用户名" required>
        <input type="password" name="password" placeholder="请输入密码" required>
        <input type="file" name="file" multiple>
        <input type="checkbox" name="hobby" value="1">篮球
        <input type="checkbox" name="hobby" value="2">足球
        <input type="submit" value="提交">
        <input type="reset" value="重置">
    </form>
</body>

</html>

filedset

分组元素,将表单元素分组。里面有个legend元素,可以写分组名称。

美化表单样式

新的伪类

  1. focus:元素聚焦是的样式。是所有元素都有的伪类,可以通过键盘的tab键来聚焦,可以通过给元素添加一个tabindex属性,来控制tab的切换顺序。

需要覆盖的默认样式:outline(外边框),浏览器默认设置了outline-offset偏移,如果要覆盖,也得重写这个样式。

  1. checked:单选或多选被选中的样式。通过这个伪类可以修改选中的样式。

常见用法

  1. 重置表单元素样式
input,textarea,button,select{
    border: none;
}

input:focus,textarea:focus,button:focus,select:focus{
    outline: none;
    outline-offset: 0;
}
  1. 设置 textarea 元素是否允许调整尺寸。

    css resize属性调整;

    • both:默认值,水平垂直都可以调整。
    • none:不能调整。
    • horizontal:水平方向可以调整。
    • vertical:垂直方向可以调整。
  2. 文本框文字到边缘的距离:

    • 通过padding
    • text-index 首行缩进
  3. 控制单选和多选的样式

    通过自己写元素来实现,通过checked伪类来选中元素,最后将单选框或者多选框隐藏。

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        .radio-item {
            display: inline-block;
            width: 10px;
            height: 10px;
            border: 2px solid #000;
            border-radius: 50%;
        }

        input[type="radio"]:checked+.radio-item {
            border: 2px solid #008c8c;
        }

        input[type="radio"]:checked+.radio-item::after {
            content: "";
            display: block;
            width: 6px;
            height: 6px;
            background-color: #008c8c;
            border-radius: 50%;
            margin: 2px;
        }

        input[type="radio"]:checked+.radio-item+span {
            color: #008c8c;
        }

        input[type="radio"] {
            display: none;
        }
    </style>
</head>

<body>
    <p>
        请选择性别:
        <label>
            <input type="radio" name="sex" id="">
            <span class="radio-item"></span>
            <span></span>
        </label>
        <label>
            <input type="radio" name="sex" id="">
            <span class="radio-item"></span>
            <span></span>
        </label>
    </p>
</body>

</html>

开发技巧:在制作登录输入框输入错误的时候,可以给form-item添加一个错误类样式来统一控制。这样就很方便,也方便控制输入框的样式,比如说边框边红,将错误提示的元素设置为display:block。

表格元素

表格术语:

image.png

image.png

image.png

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        table {
            width: 100%;
            /* 合并相邻边框 */
            border-collapse: collapse;
        }

        table caption {
            font-size: 20px;
            font-weight: bold;
        }

        table th,
        td {
            border: 1px solid #000;
            text-align: center;
        }
    </style>
</head>

<body>
    <table>
        <caption>这是表格的标题</caption>
        <!-- 表头 -->
        <thead>
            <!-- 行 -->
            <tr>
                <!-- 表头 -->
                <th>列1</th>
                <th>列2</th>
                <th>列3</th>
                <th>列4</th>
                <th>列5</th>
            </tr>
        </thead>
        <!-- 表体 -->
        <tbody>
            <tr>
                <!-- 单元格 跨越2行-->
                <td rowspan="2">单元格1</td>
                <td>单元格2</td>
                <td>单元格3</td>
                <td>单元格4</td>
                <td>单元格5</td>
            </tr>
            <tr>
                <td>单元格2</td>
                <td>单元格3</td>
                <td>单元格4</td>
                <td>单元格5</td>
            </tr>
            <tr>
                <td>单元格1</td>
                <td>单元格2</td>
                <td>单元格3</td>
                <td>单元格4</td>
                <td>单元格5</td>
            </tr>
            <tr>
                <td>单元格1</td>
                <td>单元格2</td>
                <td>单元格3</td>
                <td>单元格4</td>
                <td>单元格5</td>
            </tr>
            <tr>
                <td>单元格1</td>
                <td>单元格2</td>
                <td>单元格3</td>
                <td>单元格4</td>
                <td>单元格5</td>
            </tr>
            <tr>
                <td>单元格1</td>
                <td>单元格2</td>
                <td>单元格3</td>
                <td>单元格4</td>
                <td>单元格5</td>
            </tr>
            <tr>
                <td>单元格1</td>
                <td>单元格2</td>
                <td>单元格3</td>
                <td>单元格4</td>
                <td>单元格5</td>
            </tr>
            <tr>
                <td>单元格1</td>
                <td>单元格2</td>
                <td>单元格3</td>
                <td>单元格4</td>
                <td>单元格5</td>
            </tr>
            <tr>
                <td>单元格1</td>
                <td>单元格2</td>
                <td>单元格3</td>
                <td>单元格4</td>
                <td>单元格5</td>
            </tr>
            <tr>
                <td>单元格1</td>
                <td>单元格2</td>
                <td>单元格3</td>
                <td>单元格4</td>
                <td>单元格5</td>
            </tr>
        </tbody>
        <!-- 表尾 -->
        <tfoot>
            <tr>
                <!-- 合并单元格,跨域5列 -->
                <td colspan="5">合并:xxx</td>
        </tfoot>
    </table>
</body>

</html>

其他元素

  • meta元素:

可以用于搜索引擎优化。

  • link元素:

用于链接外部资源(css,图标)。

rel属性:链接的资源和当前网页的关系。