html - 子内边距位于父元素之外

标签 html css

对子元素应用填充是让子元素在其包含的父元素的边界上绘制。您能否解释一下边距、填充和内容宽度的大小考虑因素。

如果我们增加内边距,为什么父级不也考虑子级的内边距调整到所有子级的累积大小?

http://jsfiddle.net/NkXUW/4/

 <div>
       <ul>
          <li><a>srikanth</a>
           </li>
           <li><a>sunkist</a>
        </li>
        <li><a>sunday</a>
        </li>
    </ul>
    </div>



div {
     margin-top:90px;
    margin-left:90px;
    background-color:#676896;
   }
   ul {
     list-style-type:none;
   }
    ul li {
    display:inline-block;
   }
   a {
    background-color:#c34567;
    padding:10px 10px 10px 10px;
   }

我们需要考虑哪些编码实践来解决这个问题?

好的,伙计们,我得到了很多有效的答案。谁能解释基于子元素的父大小计算。在计算包含 parent 的大小时考虑的 child 的特征是什么。什么时候考虑整个填充什么时候不考虑?

最佳答案

子项 overdraw 父项边界的原因是因为子项是 <a> 类型的标签默认情况下是 display:inline (您可以查看是否进入 chrome 开发人员工具并查看计算样式)。内联元素显示为一行文本......因此它处理宽度和高度的方式以及所有与 block 非常不同的方式(例如 div 默认情况下是 block )。

也就是说,如果您将 a 的显示设置更改为 display:inline-block你可以保留 <a> 的内联属性但同时也获得 block 属性,即具有由其父节点识别的填充和宽度和高度,然后将 expand以适应它。

因此没有关于此的任何最佳实践。唯一的最佳做法是了解每个显示属性的含义(即 inlineblockinline-block )并正确使用它。

关于html - 子内边距位于父元素之外,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15424915/

相关文章:

html - 当屏幕尺寸较小时使两个 div 堆叠

html - 文本输入和提交输入元素在 Firefox 中具有不同的高度

javascript - 如何自动水平滚动无序列表?

html - 当显示多个文本行时,如何对齐内联 block 样式的 div 元素?

html - 在 div 中居中显示垂直虚线

html - html中根据li标签高度调整div高度的问题

html - 如何在表列之间插入空格?

html - 如何使用 CSS 设置两个背景图像?

html - 浏览器支持另一个 flexbox 内部的 Flexbox

html - 我想让虚线在窗口大小发生变化时响应(适合窗口)?