首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用OOCSS实现响应搜索栏

使用OOCSS实现响应搜索栏
EN

Code Review用户
提问于 2015-02-02 17:20:31
回答 1查看 2K关注 0票数 0

我正在实现一个搜索栏这里。我已经完成了基本UI。我最近开发了一种对可伸缩和健壮的HTML/CSS的兴趣。因此,我密切关注像边界元支助厅这样的事情。

我在正确的道路上吗?此外,我如何使UI响应?

index.html

代码语言:javascript
复制
<div id="container">
  <form class="search-box">
    <span class="search-box-icons">
      <i class="fa fa-search icon-search"></i>
    </span>
    <input class="search-box-input" type="text" placeholder="Search"/>
    <div class="search-box-autocomplete" style="display: none;">
      Foo Bar
    </div>
  </form>  
</div>

app.css

代码语言:javascript
复制
* {
  margin: 0;
  box-sizing: border-box;
  font-family: 'Roboto', sans-serif;
}

body {
  background: #343d46;
}

#container {
  width: 500px;
  margin: auto;
  margin-top: 30px;
  background: gray;
  color: black;
}

.search-box {
  width: 100%;
  position: relative;
  background: inherit;
  color: inherit;
  height: auto;
}

.search-box:hover .icon-search {
  opacity: 1;
}

.search-box-input {
  background: inherit;
  color: inherit;
  height: 50px;
  font-size: 18px;
  width: 100%;
  padding: 10px;
  padding-left: 40px;
  display: inline-block;
  border: none;
}

.search-box-input:focus {
  outline: none;
}

.search-box-icons {
  position: absolute;
  display: inline-block;
  margin: auto;
  top: 16px;
  left: 10px;
  width: auto;
}

.icon-search {
  color: inherit;
  font-size: 16px;
  display: inline;
  cursor: pointer;
  opacity: 0.4;
}

.search-box-autocomplete {
  position: absolute;
  background: #fff;
  width: 100%;
  margin: 0;
  border-top: 1px solid gray;
}
EN

回答 1

Code Review用户

回答已采纳

发布于 2015-02-03 18:34:48

标记

你用得比你需要的多。您有一个不必要的容器元素,以及两个用于显示纯粹装饰图标的空元素。这应该是实现相同效果所需的所有标记:

代码语言:javascript
复制
<form class="search-box">
    <input class="search-box-input" type="search" placeholder="Search"/>
    <div class="search-box-autocomplete" style="display: none;">
        Foo Bar
    </div>
</form>

占位符文本不是标签文本的替代品。它应该是为了提供一个类型的内容,你正在寻找的例子。

奇怪的是,您使用的是html5占位符属性,但没有使用html5输入类型的搜索。

CSS

我不赞成BEM方法,所以我不能评论你对它的遵循程度;在我看来,它总是过于冗长。

正如我已经说过的,你的图标纯粹是装饰性的。它在标记中没有位置。它最合适的位置是作为搜索字段(这里不存在)或form元素的标签上的伪元素。

以下CSS:

代码语言:javascript
复制
#container {
  width: 500px;
  margin: auto;
  margin-top: 30px;
  background: gray;
  color: black;
}

.search-box {
  width: 100%;
  position: relative;
  background: inherit;
  color: inherit;
  height: auto;
}

可以简化为:

代码语言:javascript
复制
.search-box {
  width: 500px;
  margin: 30px auto 0 auto;
  background: gray;
  color: black;
  position: relative;
}

可用性

整个配色方案的对比度极低。

当输入元素有焦点时,浏览器提供的样式被认为是可用性特性。如果它不适合你的设计,你应该调整它适合,而不是删除它。

没有提交按钮。有些用户不明白他们可以按enter键提交表单。

票数 3
EN
页面原文内容由Code Review提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://codereview.stackexchange.com/questions/79369

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档