我有一个具有position: absolute;
的div元素。我希望它始终位于右侧,而不覆盖其他元素。
这是我的HTML:
.color2 {
background-color: #ff0078 !important;
color: white !important;
}
.colorW {
background-color: white;
color: black;
border: 1px #d4d4d4 dotted;
}
.condition-input {
display: inline-block;
padding: 3px 7px;
line-height: 1;
text-align: center;
white-space: nowrap;
vertical-align: middle;
border-radius: 10px;
font-size: 0.9em !important;
width: 180px;
height: 19px;
background-color: #fff200;
color: black;
}
.condition-button-group {
position: absolute;
right: 12px;
}
<div>
<span class="badge color2">Height</span>
<span class="badge colorW">==</span>
<input type="text" class="form-control condition-input" />
<div class="d-inline condition-button-group">Text</div>
</div>
但是在页面上我看到了following。我不希望“文本”覆盖输入的左侧,应该有一个缩进。如何解决?
答案 0 :(得分:1)
您可以添加padding-right:70px;到等于.condition-button-group类的父div。
更新后的代码如下所示。
<div class="parent">
<span class="badge color2">Height</span>
<span class="badge colorW">==</span>
<input type="text" class="form-control condition-input"/>
<div class="d-inline condition-button-group">Text</div>
</div>
.parent{
position:relative;
padding-right:70px;
}
希望这会有所帮助。
如果您创建任何应该很棒的插件。
答案 1 :(得分:1)
如果使用绝对,则父div需要相对定位,以便绝对定位的元素在父内绝对是绝对的,而不是整个DOM(或设置为相对的其他祖先)内的绝对值。
class MyClass {
private:
string name;
public:
MyClass (string s) :name(s) {
cout << "constructor " << name << endl;
}
~MyClass() {
cout << "Destroying " << name << endl;
throw "invalid";
}
};
int main( )
{
try {
MyClass mainObj("M");
}
catch (const char *e) {
cout << "exception: " << e << endl;
cout << "Mission impossible!\n";
}
catch (...) {
cout << "exception: " << endl;
}
return 0;
}
样式:
<div class="wrapper">
<span class="badge color2">Height</span>
<span class="badge colorW">==</span>
<input type="text" class="form-control condition-input"/>
<div class="d-inline condition-button-group">Text</div>
</div>
查看此链接:Position absolute but relative to parent
您可能需要稍微调整一下样式,才能将其准确地定位在所需位置,但这是您要尝试做的路线。