【BUG】宽高1.14em并不一定相等哦(^。^)_html/css_WEB-ITnose
前传
我们想要自定义 input[type="radio"]的样式来符合我们产品的设计稿。
-webkit-appearance是用来改变按钮和其他控件的外观的一个 css 属性,它没有出现在 css 规范草案中。
我们通过 -webkit-appearance: none进行样式自定义之后,发现 chrome 下单选框有点扁,一度认为是浏览器版本 BUG,就先忽略了。
前几天,同事发现禁用我们设置的 font-family之后,能够恢复正常。
正文
input在设置 -webkit-appearance: none后,并不是一个普通的 div,而应该是 display: inline-block的 div,因为它可以和文字在同一段落而不自动换行。
我创建一个 display: inline-block的 div,并设置 border和宽高,来重现 input[type="radio"]变扁的样式。
在 chrome(我的版本是 49.0.2623.112 (64-bit) MAC,但应该能在大部分版本重现) 下:设置特定字体后, inline-block的 div宽高单位使用 em时,可能会出现宽高不等的问题。
(以下测试基于我们的页面 font-size: 12px)
宽 1.11em - 1.14em 约等于 1.1 em,1.15em - 1.19em 约等于 1.2em,符合四舍五入。
高 1.11em - 1.13em 约等于 1.1 em,1.14em - 1.19em 约等于 1.2em,导致我们宽高设置 1.14em 造成了 input[type="radio"]变扁。
更糟糕的是:宽高同为 1.1em 也不完全相等,而 1.2 em 是正常的。
通过计算,1.14em 约等于 13.68px,使用 px 单位的包含小数的宽高仍然是有问题的。

Hot AI Tools

Undresser.AI Undress
AI-powered app for creating realistic nude photos

AI Clothes Remover
Online AI tool for removing clothes from photos.

Undress AI Tool
Undress images for free

Clothoff.io
AI clothes remover

AI Hentai Generator
Generate AI Hentai for free.

Hot Article

Hot Tools

Notepad++7.3.1
Easy-to-use and free code editor

SublimeText3 Chinese version
Chinese version, very easy to use

Zend Studio 13.0.1
Powerful PHP integrated development environment

Dreamweaver CS6
Visual web development tools

SublimeText3 Mac version
God-level code editing software (SublimeText3)

Hot Topics



The article discusses the HTML <progress> element, its purpose, styling, and differences from the <meter> element. The main focus is on using <progress> for task completion and <meter> for stati

The article discusses the HTML <datalist> element, which enhances forms by providing autocomplete suggestions, improving user experience and reducing errors.Character count: 159

Article discusses best practices for ensuring HTML5 cross-browser compatibility, focusing on feature detection, progressive enhancement, and testing methods.

The article discusses the HTML <meter> element, used for displaying scalar or fractional values within a range, and its common applications in web development. It differentiates <meter> from <progress> and ex

The article discusses using HTML5 form validation attributes like required, pattern, min, max, and length limits to validate user input directly in the browser.

The article discusses the viewport meta tag, essential for responsive web design on mobile devices. It explains how proper use ensures optimal content scaling and user interaction, while misuse can lead to design and accessibility issues.

The article discusses the <iframe> tag's purpose in embedding external content into webpages, its common uses, security risks, and alternatives like object tags and APIs.

GiteePages static website deployment failed: 404 error troubleshooting and resolution when using Gitee...
