html - 对称排列绝对定位元素

标签 html css

我一直在为搜索下的用户制作一个选择菜单,对于每个选择按钮我都有 div:

    <div class="statbox">
        <select class="selectbox" id="stattrak">
            <option value="any"></option>
            <option value="true">Yes</option>
            <option value="false">No</option>
        </select>
        <label class="stattext" for="stattrak">StatTrak™ <b class="caret_left">&#9654;</b></label>

及其风格:

.statbox {
  position: absolute;
  margin-left: 4.5%;
  top: 75px;
}
#stattrak {
  height: 25px;
  width: 120px;
  font-size: 12px;
  background-color: white;
}
.stattext {
  float: left;
  margin-right: 10px;
  margin-top: 2px;
  color: white;
  font-family: 'Lato';
  font-size: 15px;
}

因此,正如您所见,div 本身具有绝对位置,然后是文本标签 float:left被使用所以它可以在框的左侧,并且 #stattrak本身就是<select>元素跟随其父元素的位置。

但我有多个选择选项,我希望它们在每个 y 和 x 维度上都正确对齐。请参阅code result .

如果您从 1280x800 分辨率看代码,它应该看起来非常好,但是当您缩小它时,选择框会相互重叠,并且在更高维度时看起来不对称:

更高分辨率:

enter image description here

这些元素的父元素是mover div 容器,样式为:

.mover {
  margin: 0 auto;
  max-width: 61%;
}

它会自动居中。

我也尝试过使用 display: inline-block;方法,我在两个元素上试过,其中一个应该在左边,第二个在中间,样式规则是:'.statbox { display: inline-block;边际权利:60%;顶部边距:15px; }` 和第二个应该居中的容器:.conbox { display: inline-block;边际权利:60%;顶部边距:15px; }.如您所见,conbox messed up .

设计:

有 3 个 <select>第一行的元素,左边一个,中间第二个,右边第三个。

第二行有2个元素,一左一右

在发生这种情况时,我尝试让这些元素在左侧、中间和右侧准确对称地对齐。


我试过了float: ;选项但无法按我的需要工作,可能是什么问题? float 选项有效吗?如果不是,那么保持元素与对称差异对齐的最佳方法是什么?如果有更好的方法,我不需要它们绝对定位,谢谢! ( JFiddle )

如果您在 jsfiddle 中给出最终结论,我将不胜感激。

最佳答案

绝对定位的元素从文档流中移除,这意味着它们不能使用像 float 这样的规则对称定位,您可以定位父 div absolute 并将元素定位在 relative 中:

<div class="parent">
     <div class="statbox">
        <select class="selectbox" id="stattrak">
            <option value="any"></option>
            <option value="true">Yes</option>
            <option value="false">No</option>
        </select>
        <label class="stattext" for="stattrak">StatTrak™ <b class="caret_left">&#9654;</b></label>
     </div>
     <div class="statbox">
        <select class="selectbox" id="stattrak">
            <option value="any"></option>
            <option value="true">Yes</option>
            <option value="false">No</option>
        </select>
        <label class="stattext" for="stattrak">StatTrak™ <b class="caret_left">&#9654;</b></label>
     </div>
</div>

CSS:

.parent{
  position: absolute;
  margin-left: 4.5%;
  top: 75px;
}

.statbox {
  position: relative;
  float: left;
}
#stattrak {
  height: 25px;
  width: 120px;
  font-size: 12px;
  background-color: white;
}
.stattext {
  margin-right: 10px;
  margin-top: 2px;
  color: white;
  font-family: 'Lato';
  font-size: 15px;
}

关于html - 对称排列绝对定位元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40788164/

相关文章:

php - 用 PHP 编辑 MYSQL

html - 如何更改 iconfont 图标的悬停颜色?

javascript - 如何删除嵌入在另一个 JSON 数组 (f7Contacts) 中的特定 JSON 数组 (consultas),这两个数组都保存在单个 localSorage 键中?

php - 将 php 变量导入样式表

jquery - 使用 Bootstrap 3 下拉菜单作为多级 asp 网格的上下文菜单

css - 如何修复 WebKit 中的闪烁过渡?

jquery - 单击图像时看起来像卡通云的 UI 组件

HTML - 网站在 IE 中看起来正确但在 Chrome 中有错误?

javascript - 如何平滑地更改背景颜色?

html - Opera Mini 像开源软件一样