html - 垂直对齐标签并选择左侧的文本
问题描述
我有一个简单的原生label
和select
元素堆叠。但是正如您在代码段中看到的那样,标签文本并未像这样与左侧的选择文本垂直对齐
select {
display: block;
width: 100%;
margin: 0;
padding: 0;
max-width: 100%;
border: none;
-moz-appearance: none;
-webkit-appearance: none;
appearance: none;
background-color: transparent;
background-image: url("data:image/svg+xml;charset=US-ASCII,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%22292.4%22%20height%3D%22292.4%22%3E%3Cpath%20fill%3D%22%23007CB2%22%20d%3D%22M287%2069.4a17.6%2017.6%200%200%200-13-5.4H18.4c-5%200-9.3%201.8-12.9%205.4A17.6%2017.6%200%200%200%200%2082.2c0%205%201.8%209.3%205.4%2012.9l128%20127.9c3.6%203.6%207.8%205.4%2012.8%205.4s9.2-1.8%2012.8-5.4L287%2095c3.5-3.5%205.4-7.8%205.4-12.8%200-5-1.9-9.2-5.5-12.8z%22%2F%3E%3C%2Fsvg%3E"),
linear-gradient(
to bottom,
rgba(255, 255, 255, 0) 0%,
rgba(255, 255, 255, 0) 100%
);
background-repeat: no-repeat, repeat;
background-position: right 0.7em top 50%, 0 0;
background-size: 0.65em auto, 100%;
}
<label>Label</label>
<select class="select-css">
<option>How to left align this text with label?</option>
<option>Apples</option>
<option>Bananas</option>
<option>Grapes</option>
<option>Oranges</option>
</select>
编辑:我目前已经通过margin-left: -3px
在select
元素上使用 like 来强制它......
解决方案
通常这将涉及浮点数,但对于现代 CSS3,您可以使用 Flexbox。将标签包裹并选择在容器中并display: flex
在其上使用。默认的弹性项目行为将为您提供所需的对齐方式。
.flex-container {
display: flex;
}
<div class="flex-container">
<label>Label</label>
<select>
<option>Option1</option>
<option>Option2</option>
</select>
</div>
推荐阅读
- kotlin - 如何修复“java.lang.RuntimeException:无法调用没有参数的私有 java.util.Objects()”?
- html - 如何在 pug 中内联 div 标签中的列表
- firebase - 用于在 Firebase Firestore 中存储 POJO 的 @Id 字段注释?
- python - .py 到 .exe,带有图标、图像和 chromedriver
- react-native - PermissionsAndroid.request 和 PermissionsAndroid.check 之间的区别
- jquery - 同一父 div 更改功能的背景
- node.js - puppeter导出的pdf字体在不同环境下是不一样的
- hoverfly - 在没有 Docker/Kubernetes 的 Windows 中安装 Hoverfly
- java - 在 Java 中的线程中同时对集合进行读取和写入排序
- java - 为什么chrome devtools中的html代码和jsoup解析的html代码不一样?