CSS3表格和表单样式

news2025/7/18 19:55:32

在传统网页中,表格主要用于网页布局,因此也成为网页编辑的主要工具;在标准化网页设计中,表格的主要功能是显示数据,也可适当辅助结构设计。本章主要介绍如何使用CSS控制表格和表单的显示效果,如表格和表单的边框、背景等样式。

1、表格基本样式

CSS为表格定义了5个专用属性,详细说明如下表所示:
在这里插入图片描述
除了上表介绍的5个表格专用属性外,CSS的其他属性对于表格一样适用。

1.1、设计表格边框线

使用CSS的border属性代替<table>标签的border属性定义表格边框,可以优化代码结构。

【示例】演示使用CSS设计细线边框样式的表格。
第1步,在标签内添加<style type="text/css">标签,定义一个内部样式表。

第2步,在内部样式表中输入下面的样式代码,定义单元格边框显示为1px的灰色实线:

    th, td {font-size:12px; border:solid 1px gray;}

第3步,在<body>标签内构建一个简单的表格结构。

在这里插入图片描述

1.2、定义单元格间距和空隙

为了兼容<table>标签的cellspacing属性,CSS定义了border-spacing属性,该属性能够分离单元格间距。取值包含1个或2个值。当定义1个值时,则定义单元格行间距和列间距都为该值,例如:

    table { border-spacing:20px;}/* 分隔单元格边框 */

如果分别定义行间距和列间距,就需要定义2个值,例如:

    table { border-spacing:10px 30px;}/* 分隔单元格边框 */

其中,第一个值表示单元格之间的行间距,第二个值表示单元格之间的列间距,该属性值不可以为负数。使用cellspacing属性定义单元格之间的距离之后,该空间由表格背景填充。

【示例1】重新设计内部样式表,为表格内的单元格定义上下6px和左右12px的间距,同时设计单元格内部空隙为12px:

    table { border-spacing: 6px 12px; }
    th, td {
        font-size: 12px;
        border: solid 1px gray;
        padding: 12px;
    }

在这里插入图片描述

也可以为<table>标签定义补白,此时可以增加表格外框与单元格之间的距离。

1.3、隐藏空单元格

如果表格单元格的边框处于分离状态(border-collapse: separate;),可以使用CSS的empty-cells属性设置空单元格是否显示。当其值为show时,表示显示空单元格;当值为hide时,表示隐藏空单元格。

【示例】隐藏第2行第2列的空单元格边框:

    <style type="text/css">
    table {/* 表格样式 */
        width: 400px;                     /* 固定表格宽度 */
        border: dashed 1px red;           /* 定义虚线表格边框 */
        empty-cells: hide;                /* 隐藏空单元格 */
    }
    th, td {/* 单元格样式 */
        border: solid 1px #000;           /* 定义实线单元格边框 */
        padding: 4px;                     /* 定义单元格内的补白区域 */
    }
    </style>
    <table>
        <tr><td>西</td><td></td> </tr>
        <tr><td></td><td></td></tr>
    </table>

在这里插入图片描述

1.4、定义标题样式

使用CSS的caption-side属性可以定义标题的显示位置,该属性取值包括top(位于表格上面)、bottom(位于表格底部)、left(位于表格左侧,非标准)、right(位于表格右侧,非标准)。

如果要水平对齐标题文本,则可以使用text-align属性。对于左右两侧的标题,可以使用vertical-align属性进行垂直对齐,取值包括top、middle和bottom,其他取值无效,默认为top。

【示例】定义标题靠左显示,并设置标题垂直居中显示:

    <style type="text/css">
    table {border: dashed 1px red; }      /* 定义表格虚线外框样式 */
    th, td {                              /* 定义单元格样式 */
        border: solid 1px #000;           /* 实线内框 */
        padding: 20px 80px;               /* 单元格内补白大小 */
    }
    caption {/* 定义标题行样式 */
        caption-side: left;               /* 左侧显示 */
        width: 10px;                      /* 定义宽度 */
        margin: auto 20px;                /* 定义左右边界 */
        vertical-align: middle;           /* 垂直居中显示 */
        font-size: 14px;                  /* 定义字体大小 */
        font-weight: bold;                /* 加粗显示 */
        color: #666;                      /* 灰色字体 */
    }
    </style>
    <table>
        <caption>表格标题</caption>
        <tr><td></td><td>西</td> </tr>
        <tr><td></td><td></td> </tr>
    </table>

在这里插入图片描述

2、设计表单样式

表单没有独立的CSS属性,适用CSS通用属性,如边框、背景、字体等样式。但是个别表单控件比较特殊,不易使用CSS定制,如下拉菜单、单选按钮、复选框和文件域。如果完全设计个性化样式,有时还需要JavaScript辅助实现。

2.1、定义文本框样式

使用CSS可以对文本框进行全面定制,如边框、背景、补白、大小、字体样式,以及CSS3圆角、阴影等。

【示例1】新建一个网页,在<body>标签内使用<form>标签包含一个文本框和一个文本区域。

    <form>
        <p><label for="user">文本框:</label>
            <input type="text" value="看我的颜色"  id="user" name="user" /></p>
        <p><label for="text">文本区域:</label>
            <textarea   id="text" name="text">看我背景</textarea></p>
    </form>

<head>标签内添加<style type="text/css">标签,定义内部样式表,然后输入下面样式,定义表单样式,为文本框和文本区域设置不同的边框色、字体色、背景图。

    body { font-size: 14px; }                                /* 文本大小 */
    input {
        width: 300px;                                        /* 设置宽度 */
        height: 25px;                                        /* 设置高度 */
        font-size: 14px;                                     /* 文本大小*/
        line-height: 25px;                                   /* 设置行高 */
        border: 1px solid #339999;                           /* 设置边框属性 */
        color: #FF0000;                                      /* 字体颜色 */
        background-color: #99CC66;                           /* 背景颜色 */
    }
    textarea {
        width: 400px;                                        /* 设置宽度 */
        height: 300px;                                       /* 设置高度 */
        line-height: 24px;                                   /* 设置行高 */
        border: none;                                        /* 清除默认边框设置 */
        border: 1px solid #ff7300;                           /* 设置边框属性 */
        background: #99CC99 url(images/1.jpg) no-repeat;     /* 设置宽度 */
        display: block;                                      /* 背景颜色*/
        margin-left: 60px;                                   /* 设置外间距 */
    }

在上面代码中,定义整个表单中字体大小和输入域的空间,设置宽度和高度,输入域的高度和行高应一致,即方便实现单行文字垂直居中,接着设置单行输入框的边框,在字体颜色和背景颜色取色时,一般反差较大,以突出文本内容。

设置文本区域属性。同样对其宽高设置,此处设置它的行高为24px,实现行与行的间距,而不设置垂直居中。通过浏览器会发现文本区域的边框线有凹凸的感觉,此时设置边框线为0,并重新定义边框线的样式。文本区域的输入内容较多,可以设置块元素换行显示,使输入的文本全部显示。通过浏览器发现单行文本框和文本区域左边并没有对齐,通过设置margin-left属性实现上(单行文本框)下(文本区域)的对齐,最后更改文本区域的背景色和背景图,即整个表单样式设置完毕。在IE浏览器中预览,演示效果如下图所示:
在这里插入图片描述

2.2、设计单选按钮和复选框样式

使用CSS可以简单地设计单选按钮和复选框的样式,如边框和背景色。如果改变其整体风格,需要通过JavaScript和背景图替换的方式间接实现。

下面以单选按钮为例进行演示说明。
【设计思路】
第1步,先根据需要设计两种图片状态,即选中和未选中,后期通过不同的class类实现背景图像的改变。

第2步,通过

第3步,借助JavaScript脚本实现单击时动态改变class类,实现背景图像的切换。

    <form>
        <h3>请选择您最喜欢的浏览器</h3>
        <p>
            <input type="radio" checked="" id="radio0" value="radio" name="group"/>
            <label for="radio0" class="radio1">Internet Explorer</label>
    </p>
        …
    </form>

第4步,页面进行初始化,网页字体为16号黑体。表单<form>元素宽度为600px,为每行存放3个单选按钮确定空间,并使表单在浏览器居中显示。<form>元素的相对定位应去掉,此处体现子元素设置绝对定位时其父元素最好能设置相对定位,以减少bug的出现。

    /*页面基本设置及表单<form>元素初始化 */
    body {font-family:"黑体"; font-size:16px;}
    form {position:relative; width:600px; margin:0 auto; text-align:center;}

第5步,<p>标签宽度为200px,并设置左浮动,实现表单(表单的宽度为600px,600/200=3)内部横向显示3个单选按钮。各个浏览器的名称长短不同,对其进行左对齐设置,以达到视觉上的对齐。<p>标签在不同浏览器下默认间距大小不一致,此处设置内外间距为0px,会发现第一行单选按钮和第二行单选按钮过于紧密,影响美观,于是设置上下外间距(margin)为10px。

    p{ width:200px; float:left; text-align:left; margin:0; padding:0; margin:10px 0px;}

第6步,<input>标签的ID值和<label>标签的for属性值一致,实现二者关联,并将<input>标签进行隐藏操作。即<input>标签设置为绝对定位,并设置较大的left值,比如left:-999em;<input>标签完全移到浏览器可视区域之外,达到隐藏该标签的作用,为紧跟在它后面的文字设置背景图像替代单选按钮(<input>标签)做铺垫。

    input {position: absolute; left: -999em; }

第7步,为<label>标签添加class类radio1和radio2,代表单选按钮未选中和选中状态两种状态。现在分别对class类radio1和radio2进行设置,二者CSS属性设置一致,区别在于其背景图像的不同。具体方法如下:

  • 设置背景图不平铺,起始位置为左上角,清除外间距设置。背景图的宽度是33px、高度是34px,即设置的背景图和文字间距一定要大于33px,以防止文字压住背景图(文字在图片上面)。
  • 设置左内间距为40px(可调整大小),设置
  • 在浏览器显示中观察页面,背景图未显示完整,此时需要将
    .radio1 {margin: 0px;padding-left: 40px;color: #000;line-height: 34px;height: 34px;
        background:url(img/4.jpg) no-repeat left top;cursor: pointer;display:block; }
    .radio2 {background:url(img/3.jpg) no-repeat left top; }

在这里插入图片描述

2.3、定义选择框样式

不同浏览器对于CSS控制选择框的支持不是很统一。一般情况下,通过CSS可以简单地设置选择框的字体和边框样式,对下拉菜单中的每个选项定义单独的背景、字体等效果,但是对于下拉箭头的外观,需要借助JavaScript脚本以间接方式控制。

【操作步骤】

第1步,新建一个网页,在<body>标签内使用<form>标签包含一个下拉菜单。

    <div class='box'>
        <select >
            <option class="bjc1">北京</option>
            <option class="bjc2">上海</option>
            <option class="bjc3">天津</option>
            <option class="bjc4">重庆</option>
        </select>
    </div>

第2步,在<head>标签内添加<style type="text/css">标签,定义一个内部样式表,输入下面样式。添加不同class类名实现不同<option>标签的背景颜色,最终达到彩虹颜色的下拉菜单。

第3步,为<select>标签的父元素<div>标签设置宽度为120px,IE下设置为150px,超出部分隐藏,通过第2步查看超出部分的隐藏是否有效。

    .box{width:120px;width:150px\9; overflow:hidden;}

第4步,为<select>标签设置宽度为136px,它的值小于外层<div>标签的宽度,对其设置高度为23px,因为背景图像为119px×23px,最外层的<div>标签设置的宽度是背景图的宽度所定义的。背景图的设置是查看现代浏览器和IE浏览器对<select>标签的支持情况。

    select{width:136px; color: #909993; border:none;height:23px; line-height:23px;
    background:none;background:url(images/5.jpg) no-repeat left top; color:#000000; font-weight:bold;}
    .box{height:200px; background-color:#3C9}

在这里插入图片描述
第5步,为下拉菜单的每个选项设置不同的背景颜色,通过<option>标签的不同的class名设置不同的背景颜色,实现彩虹效果。<option>标签的值与<select>标签的高度应一致,设置为手形,高度为23px,更改鼠标样式为手形。

    .bjc1{background-color:#0C9;}
    .bjc2{background-color:#F96}
    .bjc3{background-color:#0F0}
    .bjc4{background-color:#C60}
    option{font-weight:bold; border:none; line-height:23px; height:23px; cursor:pointer;}

在这里插入图片描述

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

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

相关文章

在ffmpeg中,如何把h264转换为rgb格式

在ffmpeg中&#xff0c;网络视频流h264为什么默认的转为YUV而不是其他格式 文章中介绍了&#xff0c;h264解码的时候是直接解码为yuv的&#xff0c;如果在使用的过程中 需要用到rgb的格式&#xff0c;我们该如何来转换这种格式呢&#xff1f; 在上面的文章中&#xff0c;我们已…

基于YOLOv8模型暗夜下人脸目标检测系统(PyTorch+Pyside6+YOLOv8模型)

摘要&#xff1a;基于YOLOv8模型暗夜下人脸目标检测系统可用于日常生活中检测与定位黑夜下人脸目标&#xff0c;利用深度学习算法可实现图片、视频、摄像头等方式的目标检测&#xff0c;另外本系统还支持图片、视频等格式的结果可视化与结果导出。本系统采用YOLOv8目标检测算法…

塞尔帕替尼的靶点以及疗效【医游记】

&#xff08;图片来源于网络&#xff09; 塞尔帕替尼&#xff08;Selpercatinib&#xff09;是一种高选择性和抑制活性的小分子RET&#xff08;受体酪氨酸激酶&#xff09;抑制剂。它是全球首个获批的高选择性RET抑制剂&#xff0c;用于治疗RET融合阳性的转移性非小细胞肺癌的…

GNSS卫星姿态解算

GNSS卫星姿态影响太阳光压辐射力的建模与卫星天线改正&#xff0c;正确解算卫星姿态是GNSS数据解算中的关键步骤。 卫星的姿态指卫星的星体坐标轴XYZ在惯性系下的指向&#xff0c;其中Z轴始终指向地球地心&#xff0c;Y轴为卫星太阳能帆板的旋转轴&#xff0c;它始终与太阳-卫星…

CCF_A 计算机视觉顶会CVPR2024投稿指南以及论文模板

目录 CVPR2024官网&#xff1a; CVPR2024投稿链接&#xff1a; CVPR2024 重要时间节点&#xff1a; CVPR2024投稿模板: WORD: LATEX : CVPR2024_AuthorGuidelines CVPR2024投稿Topics&#xff1a; CVPR2024官网&#xff1a; https://cvpr.thecvf.com/Conferences/2024CV…

YouTrack 在创建问题的时候如何切换项目

最近在准备从 JIRA 中转换到 YouTrack 上。 在创建问题的时候&#xff0c;JIRA 是通过选择项目&#xff0c;然后单击创建&#xff0c;这个创建就会直接在项目中进行创建了。 但是 YouTrack 不是这样的&#xff0c;感觉就是 YouTrack 的创建问题就是一个入口。 其实我并不知道…

C/C++药房管理 2021年3月电子学会青少年软件编程(C/C++)等级考试一级真题答案解析

目录 C/C药房管理 一、题目要求 1、编程实现 2、输入输出 二、算法分析 三、程序编写 四、程序说明 五、运行结果 六、考点分析 C/C药房管理 2021年3月 C/C编程等级考试一级编程题 一、题目要求 1、编程实现 随着信息技术的蓬勃发展&#xff0c;医疗信息化已经成为…

【QT开发笔记-基础篇】| 第四章 事件QEvent | 4.11 小案例-无边框窗口

本节对应的视频讲解&#xff1a;B_站_链_接 【QT开发笔记-基础篇】 第4章 事件 4.11 小案例-无边框窗口 本章要实现的整体效果如下&#xff1a; 本节课&#xff0c;来实现一个非常精简的无边框窗口&#xff0c;支持拖动4个边和4个角来缩放窗口 整体效果如下&#xff1a; 整体效…

电脑实用增效工具

1、腾讯电脑管家 强力卸载特别有用。本来挺排斥这类软件&#xff0c;但真正用一段时间后发现&#xff0c;已经能做到无骚扰&#xff0c;只需在关键时刻排上用场 2、Snipaste 桌面贴图软件&#xff0c;高效好用 3、DeskPins 置顶工具&#xff0c;可自定义快捷键 4、向日葵远程…

【红蓝攻防鸿篇巨著】ATTCK视角下的红蓝对抗实战指南

【文末送书】今天推荐一本网安领域优质书籍《ATT&CK视角下的红蓝对抗实战指南》&#xff0c;本文将从其亮点与内容出发&#xff0c;详细阐发其对于网安从业人员的重要性与益处。 文章目录 背景简介内容文末送书 背景 根据中国互联网络信息中心&#xff08;CNNIC&#xff0…

“2024杭州智慧城市展“汇集全球领先的智慧城市解决方案和前沿技术

2024杭州智慧城市展览会&#xff0c;将于2024年4月份在杭州国际博览中心盛大召开。此次展览会以智慧城市为主题&#xff0c;涵盖了智慧城市、信息安全、数据中心与通信、人工智能、公共安全、会议广播视讯、智慧社区与智能家居、智慧停车等八个模块&#xff0c;旨在推动互联网、…

基于英伟达NVIDIA Jetson Xavier nx的Ubuntu系统安装nginx,mysql, java8

记录一下基于英伟达NVIDIA Jetson Xavier nx的Ubuntu系统安装nginx&#xff0c;mysql&#xff0c; java8(非docker方式) nx系统主要用于开发ai边缘人工智能视觉计算&#xff0c;人脸识别&#xff0c;车辆识别等&#xff0c;同样的也可以部署一些常见的程序应用 nx系统界面 …

x3daudio1 7.dll丢失怎么修复?多种x3daudio1 7.dll修复方法对比

x3daudio1_7.dll是Windows操作系统中的一个动态链接库文件&#xff0c;它主要负责处理音频相关的功能。当这个文件缺失或损坏时&#xff0c;可能会导致一些音频播放问题&#xff0c;如无声、杂音等。那么&#xff0c;x3daudio1_7.dll缺失的原因是什么呢&#xff1f;又该如何修复…

JavaScript从入门到精通系列第二十六篇:详解JavaScript中的Math对象

大神链接&#xff1a;作者有幸结识技术大神孙哥为好友&#xff0c;获益匪浅。现在把孙哥视频分享给大家。 孙哥连接&#xff1a;孙哥个人主页 作者简介&#xff1a;一个颜值99分&#xff0c;只比孙哥差一点的程序员 本专栏简介&#xff1a;话不多说&#xff0c;让我们一起干翻J…

sitespeedio.io 前端页面监控安装部署接入influxdb 到grafana

1.docker部署influxdb,部署1.8一下&#xff0c;不然语法有变化后面用不了grafana模板 docker run -d -p 8086:8086 --name influxdb -v $PWD/influxdb-data:/var/lib/influxdb influxdb:1.7.11-alpine docker exec -it influxdb_id bash #influx create user admin with pass…

基于供需算法的无人机航迹规划-附代码

基于供需算法的无人机航迹规划 文章目录 基于供需算法的无人机航迹规划1.供需搜索算法2.无人机飞行环境建模3.无人机航迹规划建模4.实验结果4.1地图创建4.2 航迹规划 5.参考文献6.Matlab代码 摘要&#xff1a;本文主要介绍利用供需算法来优化无人机航迹规划。 1.供需搜索算法 …

kubernetes实验挑战三(| Vote App | Redis | Postgresql DB | Deployment | service)

Deploy the given architecture to vote namespace. 1、Create a new namespace: name ‘vote’ kubectl create ns vote2、 Create new deployment. name: ‘worker’image: ‘kodekloud/examplevotingapp_worker’status: ‘Running’ kubectl create deployment worker…

感觉嵌入式嵌入式单片机太难了,该不该放弃?

今日话题&#xff0c;感觉嵌入式单片机太难了&#xff0c;该不该放弃&#xff1f;嵌入式和单片机开发可能是一项具有挑战性但也非常有前景的领域。虽然它的学习曲线可能陡峭&#xff0c;但只要你克服了一开始的难度&#xff0c;你可能会发现它非常有趣且有价值。不要轻易放弃&a…

NodeMCU ESP8266 操作ADC读取外部模拟信号教程详解

文章目录 前言原理介绍准备知识ADC分辨率输入电压范围Analog Pin 电路搭建示例代码结论 前言 NodeMCU ESP8266 上有一个引脚可以快速采集模拟信号&#xff0c;并将其转成数字信号。 这就是我们经常听到的模数转换器&#xff08;ADC, Analog-to-Digital Converter &#xff09…

Simulink的To Workspace

To Workspace模块将Simulink产生的数据存储到matlab的工作区。 用To Workspace模块中的数据进行绘图。 参见Matlab/simulink/simscape multibody-to wotkspace模块使用_to workspace模块_五VV的博客-CSDN博客