CSS自学框架之表单

news2024/12/26 21:20:03

首先我们看一下表单样式,下面共有5张截图
表单样式,组合
表单样式—数字、颜色选择、单文件选择、多文件选择、滚动条、进度条样式
表单样式—日期选择器
表单样式—多选框、单选框、下拉框
表单样式—文本、多行文本、只读文本

一、CSS代码

/*表单*/
		fieldset{
		    border: none;
		    margin-bottom: 2em;
		}
		fieldset > *{ margin-bottom: 1em }
		fieldset:last-child{ margin-bottom: 0 }
		fieldset legend{ margin: 0 0 1em }/* legend标签是CSS中用于定义各种列表样式的重要标签之一 */
		fieldset input:not([type="checkbox"]):not([type="radio"]), fieldset select, fieldset textarea{ width: 100% }
		fieldset label{display: block; user-select: none;}
		fieldset label > span:first-child{opacity: .6;white-space: nowrap;margin-bottom: .5rem;display: inline-block;}
		/* :required 选择器在表单元素是必填项时设置指定样式。 */
		fieldset label.required > span:first-child:after{color: red;content: "*";margin-left: .25em;}
		input[disabled], textarea[disabled]{cursor: no-drop !important;}
		
		input, select, textarea{margin: 0;outline: none;font: inherit;max-width: 100%;background: none;vertical-align: middle;}
		input[disabled], textarea[disabled]{cursor: no-drop !important;}
		input[type*="date"], input[type="email"], input[type="month"], input[type="number"], input[type="password"], input[type="search"], input[type="tel"], input[type="text"], input[type="time"], input[type="url"], input[type="week"],select, textarea{padding: .5em;color: inherit;border-radius: var(--radius);border: var(--border-width) var(--gray) solid;}input.invalid, input:out-of-range{border-color: #c40b00;background: rgba(255, 0, 0, .1);}
		/* 文件选择 */
		input[type="file"]:not([hidden]){display: flex;align-items: center;}			
		input[type="file"]::-webkit-file-upload-button{color: #fff;border: none;outline: none;padding: .5em 1em;font-size: inherit;margin-right: .5em;display: inline-block;border-radius: var(--radius);background-color: var(--primary);}
		/* 颜色选择器 */
		input[type="color"]{width: 3em !important;height: 3em !important;border: none;padding: 0;}
		input[type="color"]::-webkit-color-swatch-wrapper{padding: 0;}
		input[type="color"]::-moz-color-swatch{border: none;}
		input[type="color"]::-webkit-color-swatch{border: none;border-radius: var(--radius);}
		/* 滑动条 */
		input[type="range"]{margin: 0;height: 100%;-webkit-appearance: none;-moz-appearance: none;cursor: ew-resize;cursor: grab;overflow: hidden;min-height: 1.5rem;}			
		input[type="range"]:focus{outline: none;box-shadow: none;}			
		input[type="range"]:active::-webkit-slider-thumb{border-color: var(--primary);background-color: var(--primary);}
		input[type="range"]:active::-moz-range-thumb{border-color: var(--primary);background-color: var(--primary);}		
		input[type="range"]:focus::-ms-thumb{border-color: var(--primary); background-color: var(--primary);}			
		input[type="range"]::-moz-focus-outer{ border: 0 }
		input[type="range"]::-webkit-slider-runnable-track{content: '';height: calc(var(--border-width) * 2);pointer-events: none;background-color: var(--primary);}			
		input[type="range"]::-webkit-slider-thumb{width: 1em;height: 1em;-webkit-appearance: none;appearance: none;background: #fff;border-radius: 5em;margin-top: calc(-.5em + var(--border-width));border: var(--border-width) solid rgba(0, 0, 0, .15);transition: .3s border-color, .3s background-color;}			
		input[type="range"]::-moz-range-track{height: 2px;background: rgba(0, 50, 126, .12);}			
		input[type="range"]::-moz-range-thumb{width: 1em;height: 1em;background: #fff;border-radius: 5em;margin-top: calc(-.5em + var(--border-width));border: var(--border-width) solid rgba(0, 0, 0, .15);transition: .3s border-color, .3s background-color;}		
		input[type="range"]::-moz-range-progress{border: 0;height: 2px;margin-top: 0;background-color: var(--primary);}				/* 进度条 */
		progress{overflow: auto;border-radius: 50px;}			
		progress::-webkit-progress-bar{background-color: #eee;}
		/* 多选框 */
		input[type="checkbox"], input[type="radio"]{float: left;width: 1.5em;height: 1.5em;cursor: pointer;position: relative;margin: 0 .5em 0 0;-moz-appearance: none;-webkit-appearance: none;}			
		input[type="checkbox"]:before, input[type="radio"]:before{content: '';width: 100%;height: 100%;display: block;box-shadow: 0 0 0 var(--border-width) var(--gray) inset;transition: background-color .3s, box-shadow .3s;}			
		input[type="checkbox"]:after{top: 10%;left: 10%;width: 30%; height: 60%;content: '';position: absolute;transition: transform .3s;transform-origin: 100% 100%;border-right: .15em solid #fff;border-bottom: .15em solid #fff;transform: rotate(45deg) scale(0);}
		input[type="radio"], input[type="radio"]:before{ border-radius: 100% }
		input[type="checkbox"], input[type="checkbox"]:before{ border-radius: .2em }			
		input[type="radio"]:checked:before{background-color: var(--primary);border: var(--border-width) solid var(--primary);box-shadow: 0 0 0 .2em #fff inset;}			
		input[type="checkbox"]:checked:before{box-shadow: none;background-color: var(--primary);}			
		input[type="checkbox"]:checked:after{transform: rotate(45deg) scale(1);}
		/* -- 开关按钮 */
		input[type="checkbox"].switch{width: 4em;height: 2em;float: none;cursor: pointer;position: relative;box-sizing: content-box;border-radius: calc(var(--radius) * 10);border: var(--border-width) solid var(--gray);background-color: var(--lighter-gray);transition: border .3s, background-color .3s;}			
		input[type="checkbox"].switch:before{margin: 0;border: 0;width: 2em;height: 2em;content: '';display: block;box-shadow: none;background: #fff;position: absolute;transition: transform .3s;border-radius: calc(var(--radius) * 10);}			
		input[type="checkbox"].switch:after{ content: normal }			
		input[type="checkbox"].switch:checked{box-shadow: none;border-color: var(--primary);background-color: var(--primary);}
		input.switch:checked:before{background: #fff;transform: translateX(2em);}
		/* 一行表单 */
		form .inline label, fieldset.inline label{display: inline-block;vertical-align: bottom;margin: 0 .75em .75em 0;}
		</style>
	 <meta name="viewport" content="width=device-width, maximum-scale=1, initial-scale=1"/>

二、html代码

<div class="mythBox mid">
		<fieldset>
		  <label class="required">
		    <span>单行文本框:</span>
		    <input type="text" value="我的爱好广泛" />
		  </label>
		  <label>
		    <span>禁用的文本框:</span>
		    <input type="text" value="我的年龄" disabled="">
		  </label>
		  <label>
		    <span>只读的文本框:</span>
		    <input type="text" value="我是只读的" readonly="">
		  </label>
		  <label>
		    <span>多行文本框:</span>
		    <textarea>假如生活欺骗了你,不要悲伤,不要心急!忧郁的日子里须要镇静:相信吧,快乐的日子将会来临!心儿永远向往着未来;现在却常是忧郁:一切都是瞬息,一切都将会过去;而那过去了的,就会成为亲切的怀恋。</textarea>
		  </label>
		  <label>
		    <span>数字:</span>
		    <input type="number" value="5678" />
		  </label>
		  <label>
		    <span>超出数字的文本框:</span>
		    <input type="number" min="1" max="100" value="101">
		  </label>
		  <label>
		    <span>选择颜色:</span>
		    <input type="color">
		  </label>
		  <label>
		    <span>单文件:</span>
		    <input type="file">
		  </label>
		  <label>
		  <span>上传多文件:</span>
		  <input type="file" multiple="">
		  </label>
		  <label>
		    <span>滑动条:</span>
		    <input type="range">
		  </label>
		  <label>
		    <span>进度条:</span>
		    <progress value="10" max="50"></progress>
		  </label>
		  <label>
		    <span>日期形文本框:</span>
		     <input type="date">
		  </label>
		  <label>
		    <span>日期 + 时间形文本框:</span>
		    <input type="datetime-local">
		  </label>
		  
		  <label>
		    <input type="checkbox">多选选项
		  </label>
		  <label>
			<span>性别:</span>
		    <span style="display:inline-block;"><input type="radio" name="xingbie" value=0"">女</span>
			<span style="display:inline-block;"><input type="radio" name="xingbie" value="1"></span>
			
		  </label>
		  <label>
             <span>下来单选框:</span>
            <select>
			<option>张三</option>
            <option>李四</option>
            <option>王五</option>
            </select>
           </label>
		  <label>
		     <span>下来多选框:</span>
		    <select multiple>
		  	<option>张三</option>
		    <option>李四</option>
		    <option>王五</option>
		    </select>
		   </label>
		  <label>
            <span>开关按钮:</span>
            <input type="checkbox" class="switch">
          </label>
		</fieldset>	  <br/>
		<br/>
		<form>
		  <fieldset>
		    <legend>多行:</legend>
		    <label><input type="checkbox" />多选选项 1</label>
		    <label><input type="checkbox" />多选选项 2</label>
		    <label><input type="checkbox" />多选选项 3</label>
		  </fieldset>
		  <fieldset class="inline">
		    <legend>单行:</legend>
		    <label><input type="radio" name="radio" />单选选项 1</label>
		    <label><input type="radio" name="radio" />单选选项 2</label>
		    <label><input type="radio" name="radio" />单选选项 3</label>
		  </fieldset>
		  <fieldset>
		    <legend>混搭:</legend>
		    <div class="row">
		      <div class="col-4">
		        <label>
		          <input type="text" placeholder="名字:" />
		        </label>
		      </div>
		      <div class="col-4">
		        <label>
		          <input type="text" placeholder="邮箱:" />
		        </label>
		      </div>
		      <div class="col-4">
		        <label>
		          <input type="text" placeholder="网站:" />
		        </label>
		      </div>
		      <div class="col-12">
		        <label>
		          <textarea placeholder="在这里留言吧"></textarea>
		        </label>
		      </div>
		      <div class="col-12">
		        <button class="btn yellow" type="submit">提交</button>
		      </div>
		    </div>
		  </fieldset>
		</form>
	</div>		  

这一小节里,我学习了一些表单元素的样式定,收货颇丰,主要实现了单行文本框输入、多行文本框、数字输入框、开关、单选框、多选框、下拉框、进度条、互动条等一些列表单元素的css样式。

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

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

相关文章

邀请函|澎峰科技邀您参加CCF HPC China2023

一年一度的全球超算盛会&#xff01; 以“算力互联智领未来”为主题的第十九届全国高性能计算学术年会&#xff08;CCF HPC China 2023&#xff09;将于8月24-26日&#xff08;展览23-25日&#xff09;在青岛红岛国际会议展览中心举办。 九大院士领衔 打造顶级超算盛会 力邀…

9 个值得推荐的 VUE3 UI 框架

本文推荐几个比较流行的 VUE3 UI 框架&#xff0c;同时提供出色的开发人员体验&#xff0c;合理利用&#xff0c;又或者学习借鉴都是不错的选择&#xff0c;排名不分先后。 Ant Design Vue Ant Design Vue 是一个非常成熟的框架&#xff0c;使用 Ant Design Vue 创建用户界面…

XUbuntu22.04之快速切换Terminal与Chromium窗口(一百八十九)

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

前沿分享-通过经皮神经刺激来治疗糖尿病神经性疼痛

经皮神经电刺激&#xff08;PENS&#xff09;设备用于对糖尿病周围神经病变引起的慢性、顽固性疼痛进行多次治疗。 放在耳朵上的这种可穿戴设备在几天内持续提供低水平的脉冲电流。 这是一种安全有效的非麻醉性替代治疗慢性疼痛的方法。还有一张设备放在糖足上的照片&#xff0…

Midjourney Prompt 提示词速查表 v5.2

Midjourney 最新的版本更新正不断推出令人兴奋的新功能。这虽然不断扩展了我们的AI绘图工具箱&#xff0c;但有时也会让我们难以掌握所有实际可以使用的功能和参数。 针对此问题, 小编整理了 "Midjourney Prompt 提示词速查表"&#xff0c;这是一个非常方便的 Midjo…

Java Vue Uniapp MES生产执行管理系统

本MES系统是一款B/S结构、通用的生产执行管理系统&#xff0c;功能强大&#xff01; 系统基于多年离散智造行业的业务经验组建&#xff0c;主要目的是为国内离散制造业的中小企业提供一个专业化、通用性、低成本的MES系统解决方案。 联系作者获取

[NDK]从Opengles到Vulkan-基础篇(10)-混合

关于绘制调用的流程 我们可以看到整个流程步骤 1 光栅化2 裁剪测试3 多重采样4 深度测试5 模板测试6 混合7 抖动8 输出帧数据 这一节会涉及到颜色混合。 关于混合 颜色混合的应用:混合可以应用在原有的画面的基础上,添加头像,添加其他遮罩贴图这些内容时使用。 混合其实,…

mysql主从复制搭建(一主一从)

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 前言MySQL复制过程分为三部&#xff1a; 一、准备工作二、配置>主库Master三、配置>从库SlaveSlave_IO_Running: YesSlave_SQL_Running: Yes 四、测试至此&am…

学习笔记整理-BOM-01-基础知识

一、 BOM常用对象 BOM&#xff08;Browser Object Model&#xff0c;浏览器对象模型&#xff09;是JS与浏览器窗口交互的接口。一些与浏览器改变尺寸、滚动条滚动相关的特效&#xff0c;都要借助BOM技术。 1. Window对象 window对象是当前JS脚本运行所处的窗口&#xff0c;而这…

最新Burp Suite入门技术

点击星标&#xff0c;即时接收最新推文 本文选自《web安全攻防渗透测试实战指南&#xff08;第2版&#xff09;》 五折购买链接&#xff1a;u.jd.com/3ibjeF6 Burp Suite的安装 Burp Suite是一款集成化的渗透测试工具&#xff0c;包含了很多功能&#xff0c;可以帮助我们高效地…

word 应用 打不开 显示一直是正在启动中

word打开来显示一直正在启动中&#xff0c;其他调用word的应用也打不开&#xff0c;网上查了下以后进程关闭spoolsv.exe,就可以正常打开word了

Python学习笔记_基础篇(三)_数据类型之列表

一.基本数据类型 整数&#xff1a;int 字符串&#xff1a;str(注&#xff1a;\t等于一个tab键) 布尔值&#xff1a; bool 列表&#xff1a;list &#xff08;元素的集合&#xff09; 列表用[] 元祖&#xff1a;tuple 元祖用&#xff08;&#xff09; 字典&#xff1a;dict 注&a…

中电金信:技术实践|Flink多线程实现异构集群的动态负载均衡

导语&#xff1a;Apache Flink是一个框架和分布式处理引擎&#xff0c;用于对无界和有界数据流进行有状态计算。本文主要从实际案例入手并结合作者的实践经验&#xff0c;向各位读者分享当应用场景中异构集群无法做到负载均衡时&#xff0c;如何通过Flink的自定义多线程来实现异…

LangChain入门:构建LLM驱动的应用程序的初学者指南

LangChain & DemoGPT 一、介绍 你有没有想过如何使用大型语言模型&#xff08;LLM&#xff09;构建强大的应用程序&#xff1f;或者&#xff0c;也许您正在寻找一种简化的方式来开发这些应用程序&#xff1f;那么你来对地方了&#xff01;本指南将向您介绍LangChain&#x…

Jquery 复选框点击生成标签 源代码

html <!DOCTYPE html> <html><head><meta charset"utf-8"><title>服务资源管理</title><link rel"stylesheet" type"text/css" href"../lib/layui/css/layui.css" /><link rel"st…

从零搭建vue + element-plus 项目

目录 从零搭建vue element-plus 项目 环境安装 安装项目 安装命令如下&#xff1a; 选择配置如下&#xff1a; 安装插件与启动服务 安装element框架 使用element框架 测试element是否安装成功 环境判断 安装插件 使用插件 配置变量 暴漏变量 测试…

菜单和内容滚动的联动原理及代码

之前写代码有个需求&#xff1a;左侧是一个菜单&#xff0c;右边是内容&#xff0c;点击左侧菜单右边内容滚动到对应位置&#xff0c;右边内容滚动到某位置时&#xff0c;左侧菜单也会选中对应的菜单项。UI如下&#xff1a;这是大多网站的移动端都会有的需求。 解决方案一&…

Presto之Union算子的实现

一. 前言 在Presto中&#xff0c;Union的算子包括自动去重的Union操作和不去重的Union All操作。本文主要简述在Presto中Union All算子是如何实现和Union算子中是如何实现数据去重的。 二. Presto之Union的实现 1. 首先在g4中将sql的union关键词与setOperation进行绑定 2. AstB…

css 利用 linear-gradient 实现条纹背景

1. 水平条纹背景 当给背景设置渐变效果时&#xff0c;默认的渐变方向是垂直由上到下的&#xff0c;效果如下&#xff1a; {background: linear-gradient(#aaa, #ddd);} 尝试拉近色标的距离&#xff0c;会发现渐变区域变小了&#xff1a; {background: linear-gradient(#aaa 40…

Spring Security6 最新版配置该怎么写,该如何实现动态权限管理

Spring Security 在最近几个版本中配置的写法都有一些变化&#xff0c;很多常见的方法都废弃了&#xff0c;并且将在未来的 Spring Security7 中移除&#xff0c;因此又补充了一些新的内容&#xff0c;重新发一下&#xff0c;供各位使用 Spring Security 的小伙伴们参考。 接下…