css - 将搜索按钮添加到文本输入
问题描述
我是 CSS 新手,今天我想将搜索按钮添加到我的navbar textbox
,
所以我尝试这样的事情:
*{
box-sizing: border-box;
}
body{
font-family: 'Montserrat', sans-serif;
margin:0px;
}
.section-title{
color: #2ddf5c;
}
.main-header{
display: flex;
align-items: center;
justify-content: space-evenly;
width:100%;
background: #2ddf5c;
padding: 16px;
}
.main-header > div{
vertical-align: middle;
}
.main-header__brand{
color: #0e4f1f;
text-decoration: none;
font-weight: bold;
font-size: 20px;
}
.main-nav__searchbar_container {
display: flex;
width: 100%;
padding-left: 40px;
overflow: hidden;
vertical-align: middle;
white-space: nowrap;
}
.main-nav__searchbar_container input.main-nav__searchbar{
width:100%;
height: 50px;
/* background: #2b303b; */
border: none;
font-size: 10pt;
float: left;
/* color: #fff; */
padding-left: 15px;
-webkit-border-radius: 5px;
-moz-border-radius: 5px;
border-radius: 5px;
}
.main-nav__searchbar_container input.main-nav__searchbar::-webkit-input-placeholder{
color: #65737e;
}
.main-nav__searchbar_container input.main-nav__searchbar:-moz-placeholder{ /*Frefox 18 */
color: #65737e;
}
.main-nav__searchbar_container input.main-nav__searchbar::-moz-placeholder{/*Frefox 19 */
color: #65737e;
}
.main-nav__searchbar_container input.main-nav__searchbar:-ms-input-placeholder{
color: #65737e;
}
.main-nav__searchbar_container button.icon{
-webkit-border-top-right-radius: 5px;
-webkit-border-bottom-right-radius: 5px;
border-top-right-radius: 5px;
border-bottom-right-radius: 5px;
border: none;
background: #232833;
height: 50px;
width: 50px;
color: #4f5b66;
opacity: 0;
font-size: 10pt;
-webkit-transition: all .55s ease;
-moz-transition: all .55s ease;
-ms-transition: all .55s ease;
-o-transition: all .55s ease;
transition: all .55s ease;
}
.main-nav__searchbar_container:hover button.icon,
.main-nav__searchbar_container:active button.icon,
.main-nav__searchbar_container:focus button.icon{
outline: none;
opacity: 1;
margin-left: -50px;
}
.main-nav__searchbar_container:hover button.icon:hover{
background: red;
}
.main-nav__searchbar{
display: flex;
width: 100%;
margin: 8px;
padding: 8px;
border: 2px solid;
border-radius: 4px;
outline: none;
transition: .3s;
}
.main-nav{
display: flex;
width: 100%;
text-align: right;
margin: 0 10px;
}
.main-nav__items{
display: flex;
margin:8px;
padding:8px;
list-style: none;
}
.main-nav__item{
display: inline-block;
}
.main-nav__social{
display:block;
width: 20px;
height: 20px;
margin-left: 10px;
}
.another-container{
margin:auto;
width: 100%;
padding: 10px;
}
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>CSS course</title>
<link rel="shortcut icon" href="favicon.png">
<link href="https://fonts.googleapis.com/css2?family=Anton&display=swap" rel="stylesheet">
<link href="https://fonts.googleapis.com/css2?family=Montserrat:400,700" rel="stylesheet">
<link rel="stylesheet" type="text/css" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.13.0/css/all.min.css">
<link rel="stylesheet" href="main.css">
</head>
<body>
<header class="main-header">
<div>
<a href="index.html" class="main-header__brand">
uHost
</a></div><nav class="main-nav">
<div class="another-container">
<div class=main-nav__searchbar_container><input type="text" placeholder="Search" class="main-nav__searchbar">
<button class="icon"><i class="fas fa-search" aria-hidden="true"></i></button>
</div>
</div>
<ul class="main-nav__items">
<li class="main-nav__item">
<img class="main-nav__social" src="navbar-icons/social-media__icons/facebook.svg" alt="facebook">
</li>
<li class="main-nav__item">
<img class="main-nav__social" src="navbar-icons/social-media__icons/instagram-bosquejado.svg" alt="instagram">
</li>
</ul>
</nav>
</header>
</body>
因此,当您将鼠标悬停在textbox
. 问题是我的按钮元素,textbox
即使它们在同一个容器中,它也没有与我对齐,我做错了什么?
我要添加的另一件事是为textbox
悬停动作的边框着色,使其成为设计的一部分,并给人textbox
一种活跃的印象,如下所示:
我尝试border-color: #232833;
在悬停 css 规则中使用,但这不起作用,
问候
- -更新 - -
我尝试将所有内容包装到一个新容器中,如下评论:
.another-container
{
margin:auto;
width: 100%;
padding: 10px;
}
但结果是一样的。
解决方案
对于按钮对齐,它需要具有与其兄弟相同的边距.main-nav__searchbar
,或者,您可以对父级应用填充.main-nav__searchbar_container
而不是对两个子级应用边距。
用于按钮对齐的 css
.main-nav__searchbar_container button.icon {
margin-top: 8px;
}
用于在悬停时为输入添加边框的 css
input.main-nav__searchbar:hover {
border: 2px solid blue;
}
推荐阅读
- python - 单击按钮时如何只创建一个新窗口?tkinter
- reactjs - 呈现非 React 组件的组件上的命令式逻辑(大部分)
- git - 子树存储库和主存储库都包含相同的文件。这是正常的 git 行为吗?
- html - Bootstrap 使用另一列的空间
- python - Matplotlib 集合未清除
- python - 将连续变量下采样到均匀分布
- typescript - 是否可以创建一个导出 mixins 的 Typescript 模块?
- discord.py - How could I ping @here in Discord.py?
- postgresql - 加速一个简单的 postgres 查询
- php - 在 laravel 形式中,url 有效,但路由无效