复选框(checkbox)和单选框(radio)与文字居中对齐

QTableWidget 中插入QCheckBox复选框,状态判断,居中显示 在QTableWidget表格中显示一个QCheckBox: 第一种方法,QTableWidgetItem这个对象有CheckState属性,既能显示QCheckBox,又能读取状态。 QTableWidget *tableWidget = new QTableWidget; QTableWidgetItem *checkBox = new QTableWidgetItem(); checkBox->setCheckState(Qt::Checked); tableWidget -&g... 阅读详情

最近的项目涉及到很多表单的制作,特别是复选框(checkbox)和单选框(radio)。但是在前端开发过程中发现,单(复)选框和它们后面的 提示文字在不进行任何设置的情况下,是无法对齐的,而且在Firefox和IE中相差甚大。即使设置了vertical-align:middle,也依 然不能完美对齐。如下图所示:

liuhanyu-1

于是上网查看了一些网站,发现这个问题是普遍存在的,如下图(FF3.5):

error

在很多网站涉及到表单的页面中,都存在这种表单元素与提示文字无法对齐的问题。于是打算研究一下这个问题。首先,搜索到了蓝色上wheatlee前辈的文章《大家都对vertical-align的各说各话》。wheatlee在他的文章中关于垂直居中提到了这样几个关键点:

1、vertical-align:middle的时候,是该元素的中心对齐周围元素的中心。

2、这里“中心”的定义是:图片当然就是height的一半的位置,而文字应该是基于baseline往上移动0.5ex,亦即小写字母“x”的正中心。但是很多浏览器往往把ex这个单位定义为0.5em,以至于其实不一定是x的正中心

(baseline等名词如果不懂,请先阅读wheatlee的文章)

按照这个思路,对照我遇到的问题,首先想到的是先验证一下浏览器对于“复选框”和图片是不是使用同样的规则来渲染(是不是把复选框当成一个正方形图片来对待)。于是写出下面的代码:
<style>
body{font-size:12px;}
</style><input style=”vertical-align:middle;” name=”test” type=”checkbox”>
<img style=”vertical-align:middle;” src=”testpic.gif” />
测试文字

代码中的testpic.gif是一个尺寸与复选框完全一样的黑色图片。FF3.5下显示如下:

02

事实证明,FF3.5对于复选框和图片的垂直对齐方式是采用同样的规则进行渲染的,即将复选框当作一个正方形的图片(IE不是)。按照wheatlee“middle的时候,是该元素的中心对齐周围元素的 中心”的观点,如果我在复选框后面输入英文字符,那么复选框的中心将与英文中小写字母x的中心对齐。经测试,FF3.5下面基本上是这样的(在一些字号的 时候会有一定的误差,比如,如果字体高度是偶数,那么这个中心点有时在一半偏上1px,有时在一半偏下1px)。如图:

03

但是这对于中文来说,并不是一个好的结果。因为中文是方块字,并且相同字号的情况下,高度会比小写的x高出很多。所以,按照浏览器内置的方式,只用 vertical-align:middle是无论如何也无法对齐中文的(无论是只写中文,中文在前,英文在前,FF3.5都是按照小写x中心那种方法来 对齐的。)。但是回头再看看wheatlee的文章,他说这个小写x中心对齐的渲染方式,是对于“文字”来说的。那么,如果不是文字呢…?如果复选框后面 跟的是一个行内元素,如label,而文字是写在它内部的,会是什么样呢?浏览器会不会将这个内联元素整体看作一个“块”,然后依照类似图片的规则进行渲 染呢?如果那样,我们就达到目的了。

但是经过测试,很遗憾,事实并不是这样,加上label后跟没加没有任何区别。FF3.5/IE6/IE7均是如此。在FF3.5中用firebug看一下,证明浏览器并没有按照label的高度值来去对齐中心点。如图:

04

如果按照之前的设想,红蓝两线应该是重合的。但现在的情况是,它们相差了1px。并且这1px是没有规律的,随着字号的放大,并不恒定,貌似轻易也无法提炼出对应关系来。于是想到,再试一下将label也加上vertical-align:middle。结果如图:

05

在FF3.5和IE7下面已经很接近于我们希望的状态了,只差1px。IE6下… 无语了。

经过以上折腾,我得出了跟wheatlee相同的结论,就是,各种浏览器之间对这个问题的处理貌似没有任何规律。并且,似乎每一种浏览器对于 vertical-align:middle的渲染都不是完全遵从W3C所说的“Align the vertical midpoint of the box with the baseline of the parent box plus half the x-height of the parent.”

但是经过仔细总结和分析,发现好像最终对齐的结果跟label的高度和当前字体中小写x的中心点都有关系,两者同时影响着渲染结果。那么,既然现在的情况以及非常接近于希望的状态了,是否可以通过设置字体的方式来改变小写x的中心点的位置,接入对垂直对齐结果进行“微调”呢?

最终,在不断的测试中发现,如果将font-family中的第一个字体设置为Tahoma,则可以完美的实现对齐(Verdana等字体也可以)。而且在FF3.5/IE6/IE7/IE8和Chrome中均显示正常。最终代码如下:
<!DOCTYPE html PUBLIC “-//W3C//DTD XHTML 1.0 Transitional//EN” “http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd”>
<html xmlns=”http://www.w3.org/1999/xhtml”>
<head>
<meta http-equiv=”Content-Type” content=”text/html; charset=UTF-8″ />
<title>测试vertical-align</title>
<style>
label{vertical-align:middle}
.inputcheckbox{vertical-align:middle;}
body{font-family:tahoma;font-size:12px;}
</style>
</head>
<body>
<input class=”inputcheckbox” name=”test” value=”1″ type=”checkbox”>
<label>测试文字x</label>
</html>

最终效果:

06

至此,多选框(checkbox)和提示文字对齐的问题已经解决,那么其他表单元素呢?试验了一下单选框(radio),发现,还是有问题。文字提 示依然 是偏上。用firebug看了一下,发现radio元素默认有5px的左边距和3px的上、右边距,却没有下边距。如图:

08

于是,尝试去掉radio的外边距,刷新后显示正常。(其实多选框也是有外边距的,只是它的外边距四个方向都有,并且相等,所以对于垂直对齐没有影 响。) 下图是一些常用表单元素的最终显示效果以及最终代码,大家可以用不同浏览器看一下实际的效果(注:由于演示使用的12px的中文实际只有11px高,而 IE下文本框等元素的高度是22px,一个是奇数,一个是偶数,所以这些部分在IE中是无论如何也对不齐的,差1px。如果手动控制文本框高度为奇数,或 者将文字设置成为偶数的高度,则显示正常):

09
<!DOCTYPE html PUBLIC “-//W3C//DTD XHTML 1.0 Transitional//EN” “http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd”>
<html xmlns=”http://www.w3.org/1999/xhtml”>
<head>
<meta http-equiv=”Content-Type” content=”text/html; charset=UTF-8″ />
<title>测试vertical-align</title>
<style>
*{margin:0;}
label{vertical-align:middle}
.inputcheckbox{vertical-align:middle;}
body{font-family:tahoma;font-size:12px;}
</style>
</head>
<body>
<input class=”inputcheckbox” name=”test” value=”1″ type=”checkbox”>
<label>测试文字x</label>
<br/><br/>
<input class=”inputcheckbox” name=”test2″ value=”2″ type=”radio”>
<label>测试文字x</label>
<br/><br/>
<input class=”inputcheckbox” name=”Text1″ type=”text” />
<label>文字</label>
<input class=”inputcheckbox” name=”Text1″ type=”text” />
<label>文字</label>
<br/><br/>
<label>测试文字</label>
<input class=”inputcheckbox” name=”Button1″ type=”button” value=”按钮” />
<br/><br/>
<select class=”inputcheckbox” name=”Select1″>
<option>测试文字</option>
</select>
<label>测试文字</label>
</html>

而且我发现,不但解决了中文的问题,如果提示信息换成其他语言,基本上也能够对齐,至少不会像开始那样偏移太多。下面是截图、代码和一些例子:

07
<!DOCTYPE html PUBLIC “-//W3C//DTD XHTML 1.0 Transitional//EN” “http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd”>
<html xmlns=”http://www.w3.org/1999/xhtml”>
<head>
<meta http-equiv=”Content-Type” content=”text/html; charset=UTF-8″ />
<title>测试vertical-align</title>
<style>
label{vertical-align:middle}
.inputcheckbox{vertical-align:middle;}
body{font-family:tahoma;font-size:12px;}
</style>
</head>
<body>
<input class=”inputcheckbox” name=”test” value=”1″ type=”checkbox”>
<label>测试文字x</label>
<br/>
<input class=”inputcheckbox” name=”test” value=”1″ type=”checkbox”>
<label>這是繁體中文</label>
<br/>
<input class=”inputcheckbox” name=”test” value=”1″ type=”checkbox”>
<label>次回から自動的にログイン</label>
<br/>
<input class=”inputcheckbox” name=”test” value=”1″ type=”checkbox”>
<label>English</label>
<br/>
<input class=”inputcheckbox” name=”test” value=”1″ type=”checkbox”>
<label>Чужой компьютер</label>
<br/>
<input class=”inputcheckbox” name=”test” value=”1″ type=”checkbox”>
<label>????? ?? ‏???????? </label>
<br/>
<input class=”inputcheckbox” name=”test” value=”1″ type=”checkbox”>
<label>????</label>
<br/>
<input class=”inputcheckbox” name=”test” value=”1″ type=”checkbox”>
<label>?????</label>
<br/>
</html>

 

label标签使用,点击文字就能选中或取消选中复选框checkbox/单选框radio的两种方法 效果是点击文字就能选中复选框checkbox/单选框radio 或者是取消选择复选框checkbox/单选框radio。 一、单选框 第一种方法:文字必须是label标签内,checkbox的id和<label>标签内的for=""中的名字必须相同。 <div class="radio-inline"> <input type="radio" name="killOrder" id="killOrder1" value="1"/> <lab 阅读详情

相关推荐

CSS3实现checkbox和radio自定义样式

我们知道浏览器自带的checkbox复选框和radio单选框不怎么美观,而且在不同的浏览器上显示的样式又有很大的差异,由于目前越来越多的人开始接受支持CSS3的现代浏览器,所以今天就简单的用一些CSS3代码来自定义Checkbox的显示方式。

朽然的博客 5887

[乐意黎]复选框(checkbox)和单选框(radio)与文字水平垂直居中对齐的解决方法

复选框(checkbox)和单选框(radio)与文字水平垂直居中对齐的解决方法 今天项目中出现了一个checkbox与同一行的文字不能对齐的问题,检查后发现个问题,checkbox和radio两个标签的默认高宽都是13px,而项目中使用的字体大小却是12px,如果将字体调整为14px就不存在这个问题了,于是作者根据网上查到的资料整理了几种解决办法。 先发一下具体的问题情况以及解决

打杂人-aerchi 1万+

[Ext JS] 3.5 单选框 Radio与复选框CheckBox

Radio 单选框,意思是当有一组同名的单选框时,一次只能选择一个。有单选框,也就有复选框(checkbox),对应的复选框就可以选择多个。 Radio 和 Checkbox 可以用来显示一个框, 也可以用来处理多个同名的输入可,在存在多个name相同的单选框和复选框时, Radio 一般结合 Ext.form.RadioGroup 使用;Checkbox 结合Ext.form.CheckboxGroup 使用。

oscar999的专栏 1489

css如何设置radio居中显示,Css实现radio样式自定义

实现思路1.设置input 属性hidden对该input进行隐藏,或者通过display:none也可以2.借助label for标签通过id绑定input ,这样在点击label时实际就是点击了input3.定义label的样式,设置未选中状态的背景图.advice{height: 12px;width: 12px;display: inline-block;background-image:...

weixin_42502933的博客 1397

AI训练师团队管理运营思路

工具运营AI训练师主要是支撑运营,协助算法和运营提高托管机器人的解决能力,以协助降低业务场景熔断与优化场景识别为核心运营目标,通过算法聚类、标注分析等方式,结合业务知识,提供精准、清晰的标注数据和解决方案,确保训练效果满足需求。过程中需要与算法、运营一块参与模型搭建和数据验收,并且负责核心指标和数据日常的跟踪维护。④针对知识库已有意图进行梳理和分析,反馈运营评估缺失或合并意图优化方向。③对语料数据进行挖掘、清洗,解除缠绕、冗余等问题导致的未识别。①线上case分析,及时发现识别问题导致的托管熔断问题。

qq_25438419的博客 1085

基于Simulink的直流电机双闭环调速系统抗扰动仿真与参数优化

本文详细介绍了基于Simulink的直流电机双闭环调速系统仿真与参数优化方法。通过构建转速外环与电流内环的仿真模型,阐述了利用工程设计法整定PI参数的核心步骤,并重点探讨了如何优化系统参数以增强其抗负载突变等扰动的能力,实现快速、平稳的调速性能。

weixin_29061997的博客 192

复选框(checkbox)和单选框(radio)与文字水平垂直居中对齐的解决方法

今天项目中出现了一个checkbox与同一行的文字不能对齐的问题,检查后发现个问题,checkbox和radio两个标签的默认高宽都是13px,而项目中使用的字体大小却是12px,如果将字体调整为14px就不存在这个问题了,根据网上查到的资料整理了几种解决办法。先发一下具体的问题情况以及解决后的效果 .input1{vertical-align:text-bottom;margin-bottom:-1px;*margin-bottom:-4px;} .input2{height:13px;vertic

zxy_wtnl的博客 6532

开发框架Furion之WebApi+SqlSugar (一)

MyFurion.Model项目中,通过Nuget添加Furion、Furion.Extras.DatabaseAccessor.SqlSugar、Furion.Extras.ObjectMapper.Mapster、SqlSugarCore,同时添加对项目MyFurion.Unility的引用。在MyFurion.Start项目中,通过Nuget添加 AspNetCoreRateLimit、System.Linq.Dynamic.Core,同时添加对项目MyFurion.Application的引用。

liwan09的博客 1万+

checkbox与文字居中对齐问题

有时checkbox与文字会出现不能对齐的问题,如下所示:解决的办法网上有蛮多方案,再此我给出的法案如下:①css代码:input[type='checkbox']{ width:24px; height:24px; vertical-align:middle; }②body代码<label> <inpu

King_crazy的博客 1万+

数据库系统概论课后习题答案(第五版 王珊、萨师煊)

第1章 绪论 1 .试述数据、数据库、数据库系统、数据库管理系统的概念。 答: ( l )数据( Data ) :描述事物的符号记录称为数据。数据的种类有数字、文字、图形、图像、声音、正文等。数据与其语义是不可分的。解析在现代计算机系统中数据的概念是广义的。早期的计算机系统主要用于科学计算,处理的数据是整数、实数、浮点数等传统数学中的数据。现代计算机能存储和处理的对象十分广泛,表

早知晓的博客 11万+

NXP ChessDE的安装和激活

如果客户申请的是试用版,那么一份为期 30 天的 License 将会发送申请人的账号或邮箱中,客户使用该文件进行安装即可。② 将“VENDOR snpslmd /path/to/snpslmd”中的“/path/to/snpslmd”替换成 snpslmd.exe 实际存放路径(位于 SCL 安装目录下的 win32\bin 文件夹中,默认安装的情况下就是“VENDOR snpslmd C:\Synopsys\SCL\<version>\win32\bin\snpslmd.exe”)。

weixin_47351160的博客 2043

radio和图片对齐_复选框(checkbox)和单选框(radio)与文字水平垂直居中对齐的解决方法...

今天项目中出现了一个checkbox与同一行的文字不能对齐的问题,检查后发现个问题,checkbox和radio两个标签的默认高宽都是13px,而项目中使用的字体大小却是12px,如果将字体调整为14px就不存在这个问题了,于是作者根据网上查到的资料整理了几种解决办法。先发一下具体的问题情况以及解决后的效果: 具体解决代码如下:body{font-size:12px;}div{float:left...

weixin_39992788的博客 485

使用MATLAB实时处理摄像头图像

本文介绍了如何使用MATLAB进行实时图像处理,包括从摄像头获取图像、对图像进行处理并显示处理结果。我们将演示如何使用MATLAB的图像处理工具箱来实现常见的图像处理任务,如图像增强、边缘检测和物体检测。

XsiJava的博客 920

html中多选框文字居中,复选框(checkbox)和单选框(radio)与文字水平垂直居中对齐的解决方法|2019-01-22...

今天项目中出现了一个checkbox与同一行的文字不能对齐的问题,检查后发现个问题,checkbox和radio两个标签的默认高宽都是13px,而项目中使用的字体大小却是12px,如果将字体调整为14px就不存在这个问题了,于是作者根据网上查到的资料整理了几种解决办法。先发一下具体的问题情况以及解决后的效果:展示具体解决代码如下:body{font-size:12px;}div{float:lef...

weixin_39592137的博客 1770

uniapp - 微信授权登录报错 errMsg“:“login:fail send“ | “code“:-100 | “innerCode“:-6,解决uni-app调用微信登录时没有响应且返回错误

uni-app,微信登录,微信登录报错,微信小程序,支付宝小程序,安卓app,苹果ios,nvue,H5网页网站,uniapp苹果安卓app,微信授权登录,uniAppAPP端微信登录报错,微信确认登录界面后点击登录报错,"errMsg":"login:failsend","errCode":-100,"code":-100,"innerCode":-6,都配置好了还是报错怎么办,uniapp微信授权登录报错,UniApph5对接微信登录出现错误,appid,应用签名,微信登陆,code:-100

🏆 前端领域优质创作者 1万+

YOLOv12改进目录一览 | 涉及卷积层、轻量化、注意力、损失函数、Backbone、SPPF、Neck、检测头等全方位改进

1️⃣ 什么!不知道如何改进模型⁉️ 本专栏所使用并改进的每一个模块均包含详细的模块分析、原理讲解、个人总结、多种改进方式以及完整的修改流程,所有改进100%可直接运行,性价比极高。2️⃣ 找不到合适的模块⁉️ 所有改进点均为近三年顶会,顶刊提出的先进算法,将其融入到中,并进行二次创新,新颖度高,创新度高,能够适应不同的任务场景。3️⃣ 不确定自己改进的步骤、结果是否正确⁉️ 订阅专栏即可进群享受模型训练、模型改进、论文写作、投稿选刊,从入门到论文的各种答疑内容,非常适合新手。4️⃣ 团队内发表数篇SCI论

Limiiiing的博客 2万+

html 复选框(checkbox)和单选框(radio)与文字水平垂直居中对齐

对 input与label同时设置CSS input,label{ vertical-align:middle; } 转载于:https://www.cnblogs.com/fenglie/p/4531263.html

weixin_30656145的博客 830

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

Flutter学习日记之表单组件Radio单选框&Checkbox复选框的使用

大家好,我是小黑,一个还没秃头的程序员~~~ 生活不会惯着你,想要不被抛弃,必须自己争气! 今天分享的内容是Flutter的表单组件中的单选框Radio与复选框Checkbox,源码地址:[https://gitee.com/fjjxxy/flutter-study.git](https://gitee.com/fjjxxy/flutter-study.git),效果如下:

qq_40785165的博客 2850

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

[01] radio ,checkbox 表单文字对齐

http://www.cnblogs.com/wangsir015/p/5555818.html 这几天在做表单时总会碰到复选框(checkbox)和单选框(radio)与文字不对齐的问题,要不是checkbox上浮了,要不是文字上浮。在前端开发过程中,单(复)选框和它们后面的提示文字在不进行任何设置的情况下,是无法对齐的,而且在Firefox和IE中相差甚大。即使设置了vertica...

banpian5203的博客 411

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

html复选框和文字水平对其,input checkbox、radio、button与文字对齐

如果把文字与 checkbox、radio、button 排在一起,它们不对齐,文字总要下一点,看起来有点别扭,有无办法使它们对齐?用 Css 可以实现此目的,不过在使用过程中,可能会遇到一些问题。如果 Css 定义的 html 标签不对,虽然 Css 是一样,但仍然不能让 checkbox、radio、button 与文字对齐,笔者在实际应用过程中就多次遇到这种情况,故总结出来与大家分享,避免犯...

weixin_29355333的博客 3248

php input框水平居中,复选框和单选框与文字水平垂直居中对齐的解决方法

checkbox和radio两个标签都是我们经常会用到的,有时候项目中出现了一个checkbox与同一行的文字不能对齐的问题,检查后发现个问题,checkbox和radio两个标签的默认高宽都是13px,而项目中使用的字体大小却是12px,如果将字体调整为14px就不存在这个问题了,于是作者根据网上查到的资料整理了几种解决办法。先发一下具体的问题情况以及解决后的效果:body{font-size:...

weixin_42131541的博客 851

单选框 (Radio)和复选框( Checkbox)

默认的 Radio 是一个带对勾的小圆圈,允许我们修改选中时的背景色、未选中时的边框色以及指示器的颜色,还可以选择性地从电脑上选择一张图片进行插入,还可以进行单击后的跳转。这时候,我们可以用 Row 作为根容器,左边放 Radio,中间用 Column 包裹两行文字,并通过 layoutWeight 撑满剩余空间,右边再放一个推荐标签。第三,Radio 默认尺寸较小,如果需要更大的点击区域,可以通过 width 和 height 调整,但不要过度放大,以免影响视觉比例。、Android 的。

2601_96002974的博客 273

单选框和复选框

1、单选框以及复选框的使用 单选框以及复选框的使用 性别: 男 女 爱好: 篮球 足球 跑步

Maizi93的博客 9977
上一篇: display:inline 怎么用
下一篇: IE6 7下解决无内容的空DIV占位置的方法
wangdyy921
博客等级 码龄16年 3粉丝 11原创
评论 5
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值