【问题标题】:Background color around child elements子元素周围的背景颜色
【发布时间】:2017-01-25 17:28:12
【问题描述】:

我在父 div 中有 2 个子锚标记。我想在不影响整个行的情况下为子 div 添加背景颜色和一些样式。

这是我的 HTML:

  <div class= 'about-header-container header-info' id='about-header' style='display: block;'>
    <a class='bio-header tablink' href='#bio-dashfolio'>Bio</a>
    <a class='timeline-header tablink' href='#timeline-dashfolio'>Timeline</a>
 </div>

和 CSS:

.tablink {
  margin-right: 20px;
}

.header-info {
margin-left: 80px;
margin-top: 10px;
font-size: 15px;
background-color: red; /* trial color*/
}

小提琴:https://jsfiddle.net/kesh92/t5zzk6oc/ 目前,红色会影响 bio-header 子 div 中的整行。如果我将 width 属性添加到 .header-info 父 div 中,则没有精确的方法可以将其完全包裹在子 div 周围,特别是考虑到子 div 的红色 background-color 完美地包裹在第一个子 div 周围(被bio-header)。请帮我在左右边距相等的子 div 周围添加红色。 提前致谢!

编辑:这是我想要达到的结果 -

【问题讨论】:

  • 请提供 完整 最少代码,您的问题和小提琴的“子 div”为零,所以....样式锚点...
  • 改变你的显示:块;到内联块;

标签: html css


【解决方案1】:

对父母使用display:table,对每个孩子使用display:table-celldisplay:table-* 包裹得很紧,因此在每个孩子身上使用 padding 以根据需要进行间距。

片段

.header-info {
  display: table;
  margin-left: 80px;
  margin-top: 10px;
  font-size: 15px;
  background-color: red;
  /* trial color*/
}
.tablink {
  margin-right: 20px;
  display: table-cell;
}
.bio-header {
  padding: 3px 15px 3px 5px;
}
.timeline-header {
  padding: 3px 5px 3px 15px;
}
<div class='about-header-container header-info' id='about-header'>
  <a class='bio-header tablink' href='#bio-dashfolio'>Bio</a>
  <a class='timeline-header tablink' href='#timeline-dashfolio'>Timeline</a>
</div>

【讨论】:

    【解决方案2】:

    .header-info
    {
      display: block;
      font-size: 0px;
     
    }
    .header-info a
    {
      text-decoration: none;
      background-color: red;
      font-size: 15px;
      padding: 10px 20px;
    }
    <div class="header-info">
        <a class="anchor"  href='#bio-dashfolio'>Bio</a>
        <a class="anchor" href='#timeline-dashfolio'>Timeline</a>
     </div>

    【讨论】:

    • 请查看更新后的问题以了解我希望达到的结果。谢谢!
    • 感谢您抽出宝贵的时间来回答,但是一旦我在 Bio 和 Timeline 单词之间添加了一些空格,就没有得到结果。 Bio 和 Timeline 是单独的词,不是一个词。
    • @KeshavVasudevan 我添加了额外的填充
    • 感谢一百万 @Parth Patel,这非常有效! :D 我看到我错误地使用了font-size
    【解决方案3】:

    试试这个:

    .tablink {
      padding-right: 20px;
      background-color: grey;
    }
    
    a {
      float: left;
    }
    
    .header-info {
      margin-left: 80px;
      margin-top: 10px;
      font-size: 15px;
    }
    

    更新:https://jsfiddle.net/63nqdswL/

    【讨论】:

    • 感谢@ovokuru,但我希望它围绕子 div 排成一排,而不是单个元素。例如,在您的解决方案中,各个锚标记周围的红色之间仍有空间。让我知道这是否有意义,或者您需要更清楚。
    猜你喜欢
    • 2019-07-31
    • 1970-01-01
    • 2012-01-30
    • 2013-02-07
    • 2022-12-12
    • 1970-01-01
    • 1970-01-01
    • 2011-08-31
    • 2014-10-14
    相关资源
    最近更新 更多