CSS右侧的绝对位置包括其他元素

时间:2018-08-17 13:32:54

标签: html css twitter-bootstrap position

我有一个具有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。我不希望“文本”覆盖输入的左侧,应该有一个缩进。如何解决?

2 个答案:

答案 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

您可能需要稍微调整一下样式,才能将其准确地定位在所需位置,但这是您要尝试做的路线。