加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 资源网站 > 资源 > 正文

html – 连续放置2个50%宽度的输入元素,了解盒子大小

发布时间:2020-12-14 19:42:30 所属栏目:资源 来源:网络整理
导读:我正在尝试将2个输入元素内联,每个输入元素的宽度为50%.为什么我必须从输入元素中减去边框宽度,即使我使用box-sizing:border-box? http://jsfiddle.net/Nmvk6/ HTML form class="form" div class="form-group" labelType/label button class="btn btn-def
我正在尝试将2个输入元素内联,每个输入元素的宽度为50%.为什么我必须从输入元素中减去边框宽度,即使我使用box-sizing:border-box?

http://jsfiddle.net/Nmvk6/

HTML

<form class="form">
    <div class="form-group">
        <label>Type</label>
        <button class="btn btn-default">
            <span class="glyphicon glyphicon-plus-sign"></span>
        </button>
    </div>
    <div class="form-group">
        <select class="form-control half-width-form-control">
            <option value="foo">foo</option>
            <option value="bar">bar</option>
        </select>
        <input class="form-control half-width-form-control" type="number"></input>
    </div>
</form>

CSS

.half-width-form-control {
   display: inline-block;
    width: calc(50% - 2px);
    /*width: 50%;*/
    /*box-sizing: border-box;*/
}

解决方法

你在这里遇到的问题与内联块有关.

display:inline-block告诉浏览器将元素视为与其内容有关的块,但作为与其周围环境相关的内联元素.

这里的问题是两个元素周围的环境包括一些空白区域.具体来说,两个元素之间有一些空白区域.空格与内联元素相关,因此也适用于内联块元素.

简而言之,就好像这两个元素是句子中的单词.它们之间的空白被视为两个单词之间的空间.

你最终得到的是50%宽度的一个空格字符的50%宽度.

这是一个众所周知的内联块问题,但确实让人们大开眼界.

因此,快速脏的解决方案是移除空间 – 关闭< select>的结束之间的间隙.并且< input>的开始所以那里没有空间.

其他替代方法包括使用注释来消除差距(丑陋),将容器元素设置为font-size:0px;以及各种其他hacky解决方案.

或者,您可以丢弃内联块.还有许多其他选项可以实现相同或类似的结果 – 特别是float,display:table-cell和flex-box,但也存在其他选项.

但我的建议是删除两个元素之间的空格.快速,轻松修复.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读