我试着创建一个类似谷歌的搜索栏.我编写了以下HTML:

<div id="settings-menu">
    <div class="search">
        <div class="search-icon"><i class="fi-xwluhl-magnifying-glass-wide"></i></div>
            <div class="input">
                <input type="text" placeholder="Search" id="settings-search">
            </div>
        <span class="clear interactive"><i class="fi-xwluxl-times-wide"></i></span>
    </div>
</div>

以及用于输入元素的以下css:

#settings-menu input {
    width: 100%;
    height: 100%;
    border: none;
    font-size: 16px;
    background-color: var(--main-bg-color);
    color: var(--main-color);
}

结果如下:

enter image description here

我不明白为什么输入的内容会让家长们感到不知所措. 下面是JSfiddle:https://jsfiddle.net/Imabot/ub4y7w8f/中的完整代码

欢迎任何帮助(和解释)!

推荐答案

这是因为您的box-sizing设置为内容框.将其设置为border-box将解决大小调整问题

*, ::before, ::after {
  box-sizing: border-box;
}

这是因为默认情况下,输入元素具有垂直填充.框大小设置为Content-box会将填充添加到高度值.这使得元素的总高度为here%+导致溢出的填充.你可以阅读更多关于盒装尺寸为here的内容.

如果您不想更改框大小,可以依靠FlexBox对齐来正确对齐内容:

#settings-menu .search {
  align-items: center;
}

通过将Flex子项与中心对齐,输入将不会溢出并将被正确定位

Html相关问答推荐

弹性项在主轴方向溢出

如何让一个动态列表以网格方式水平显示

如何从ThymeLeaf模板中分离CSS

Angular /HTML5不会播放本地文件夹中的音频mpeg

获得一个css框,以便在页面太小时不再粘在页面的角落.

为什么我的网页底部是蓝色背景而不是渐变色?

HTML+CSS+JS动态选中文本高亮 colored颜色 变化

Div内容防止同级大小增加

如何在一行文本溢出省略号后显示文本?

响应CSS中的两到三列布局

使用HTML进行DAX测量

浮动Div在CSS中未按预期工作

在 HTML 视频上环绕文本叠加

:after 伪元素没有出现,即使它有 content 属性

如何将内容放置在侧边栏旁边?

当作为常规图片输入时,Cloudfront分布式图像可显示,但作为背景图像不显示

当悬停时,同时影响相邻的两侧div

如何使背景 colored颜色 逐渐渐变成另一种 colored颜色 ?

将现有内容拆分为三列或部分

使用 R markdown 在 html 中包含图像