【问题标题】:Overriding Bootsrap with custom CSS related to search forms使用与搜索表单相关的自定义 CSS 覆盖 Bootstrap
【发布时间】:2015-04-22 13:22:16
【问题描述】:

我正在编写一个基本 sie 的标题,但我无法理解用我自己的 CSS 覆盖引导 CSS 的正确方法。我添加了表单控件输入和按钮以充当站点搜索,但在定位方面遇到了麻烦。定位似乎总是我遇到的一个问题,因为我总是添加需要我调整其他人定位的功能。无论如何,我为我的标题编写了一些代码,我想连续充当徽标 > 菜单 > 搜索 > 社交按钮。我的 HTML 是:

<!doctype html>
<html>
<head>

<link rel = "stylesheet" href = "css/style_samp2.css">
<link rel = "stylesheet" href = "css/bootstrap.min.css">


<meta charset="utf-8">
<title>Site</title>
</head>

<body>

<nav class="navbar navbar-default">
  <div class="container-fluid">
    <div class="navbar-header">
      <a class="navbar-brand" href="logo_header_test1.html">
        <img alt="My Logo" src="logo.gif">
      </a>
    </div> 

    <div class="container">
    <ul class = "dropdown-menu-right">
     <div class = "top-menu">
      <li><a href="About.html">About</a></li>
      <li><a href="#">Blog</a></li>
      <li><a href="resume.html">Resume</a></li>
      <li><a href="#">Portfolio</a></li>

      </div>
      </ul>

      <form class="navbar-form navbar-left" role="search">
        <div class="form-group">
          <input type="text" class="form-control" placeholder="Search">
        </div>
        <button type="submit" class="btn btn-default">Submit</button>
      </form>

      </div>
  </div>

</div>




</nav>



<script src="http://jqueryjs.googlecode.com/files/jquery-1.3.2.min.js" type="text/javascript"></script>

<script src="js/scripts.js" type="text/javascript"></script>
</body>
</html>

CSS:

html {
  font-family: sans-serif;
  -webkit-text-size-adjust: 100%;
  -ms-text-size-adjust: 100%;
}

.container-fluid {
    background-color: #30302f;
    height: 90px;
}
.top-menu a{
  color: #fff;
  font-size: 18px;
  font-weight: bold;
  padding: 14px 10px;
  text-transform: uppercase;
  position: relative;
  left: 320px;
  top: 64px;
}

.top-menu a:hover {
    text-decoration: underline;
    color: #fff;
}

.container .top-menu li{
    display: inline-block;
}

.social{
    position: relative;
    top: 20px;
    left: 900px;
}

.navbar-header a {
    background-color: #30302f;
    height: 69px;
    width: 367px;
    position: relative;
    left: 120px;
}

Pseudo ::before element
:after, :before {
  -webkit-box-sizing: border-box;
  -moz-box-sizing: border-box;
  box-sizing: border-box;
}
Pseudo ::after element
:after, :before {
  -webkit-box-sizing: border-box;
  -moz-box-sizing: border-box;
  box-sizing: border-box;
}

这是一个小提琴(徽标不起作用,但尺寸正确):

https://jsfiddle.net/yp1pm3e8/

感谢您提供有关放置 div 的正确方法的任何意见!

【问题讨论】:

  • 你需要清理你的小提琴。您的 style_same2.css 文件会将您带到需要登录才能查看的下拉框。我建议取出您的自定义 CSS 并将其添加到 Fiddle 本身。此外,您不需要向 HTML 部分添加任何标题数据(删除文档类型、标题等)

标签: html css twitter-bootstrap twitter-bootstrap-3


【解决方案1】:

查看此页面http://getbootstrap.com/css/ 并查看引导程序的“网格系统”。这将帮助您理解行和列。至于您的自定义 css,我同意上述答案。您必须在头部的引导样式表之后有您的样式表。

徽标和搜索栏不应包含在导航标签中。 http://www.w3schools.com/TAgs/tag_nav.asp 查看此页面以了解有关使用导航的良好定义。导航应该只包含您的网站导航或其他主要/实用网站导航。在这种情况下,它将是您的简介、博客、简历和作品集。

Bootstrap 可以轻松创建流畅的布局。因此,您应该小心尝试覆盖代码。根据您提供的代码和您提出的问题,我会尝试像下面这样包装所有内容。这会将所有内容放在同一行,并帮助您按自己的意愿定位。然后,您可以将所有内容包装在您的标签中,并根据需要设置样式。请记住,bootstrap 是一种流畅的响应式布局。

<div class="container-fluid">
  <div class="row">
     <div class="col-md-4">Logo tags and code goes heare</div>
     <div class="col-md-4">Navigation and tags goes here</div>
     <div class="col-md-4">Search code and tags goes here</div>
  </div>
</div>

我建议将 .img-responsive 设置为您的徽标,以使其保持流畅。在 js fiddle 中,我注意到徽标与导航重叠存在问题。我认为这是因为您提供了固定尺寸。此外,当您可能不需要时,您正在将事物设置为相对位置。如果您需要进一步解释,请告诉我。

希望这会有所帮助!

编辑:好的,在再次查看您的问题并在 jsfiddle 中查看您的新代码后,我想出了这个解决方案:https://jsfiddle.net/8yufLL4n/embedded/result/

这里是可编辑 jsFiddle 代码的链接:https://jsfiddle.net/8yufLL4n/

我为此使用了一些资源:http://getbootstrap.com/components/#navbar-default 我从引导程序复制了代码,并进行了一些改动以适应我认为您正在尝试做的事情。现在在大屏幕和普通平板电脑上查看徽标、导航和搜索表单都位于同一行。当您调整屏幕尺寸时,这种变化就像在所有流畅和响应式设计中一样。要使下拉菜单正常工作,您必须添加 javascript。这个链接应该有帮助:http://getbootstrap.com/javascript/#dropdowns

这里是html:

    <nav class="navbar navbar-default navbar-fixed-top">
     <div class="container">
    <!-- Brand and toggle get grouped for better mobile display -->
    <div class="navbar-header">
     <button type="button" class="navbar-toggle collapsed menuIcon" data-toggle="collapse" data-target="#bs-example-navbar-collapse-1">
    <span class="sr-only">Toggle navigation</span>
    <span class="icon-bar"></span>
    <span class="icon-bar"></span>
    <span class="icon-bar"></span>
  </button>
  <a class="navbar-brand" href="#">
      <img alt="Brand" src="http://i.imgur.com/jeJYf95.gif" class="img-responsive" id="brandImage" />
  </a>
</div>

  <!-- Collect the nav links, forms, and other content for toggling -->
  <div class="collapse navbar-collapse" id="bs-example-navbar-collapse-1">
  <ul class="nav navbar-nav">
    <li class="dropdown">
      <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-expanded="false">About <span class="caret"></span></a>
      <ul class="dropdown-menu" role="menu">
        <li><a href="#">Action</a></li>
        <li><a href="#">Another action</a></li>
        <li><a href="#">Something else here</a></li>
        <li class="divider"></li>
        <li><a href="#">Separated link</a></li>
        <li class="divider"></li>
        <li><a href="#">One more separated link</a></li>
      </ul>
    </li>
    <li class="dropdown">
      <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-expanded="false">Blog <span class="caret"></span></a>
      <ul class="dropdown-menu" role="menu">
        <li><a href="#">Action</a></li>
        <li><a href="#">Another action</a></li>
        <li><a href="#">Something else here</a></li>
        <li class="divider"></li>
        <li><a href="#">Separated link</a></li>
        <li class="divider"></li>
        <li><a href="#">One more separated link</a></li>
      </ul>
    </li>
    <li class="dropdown">
      <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-expanded="false">Resume <span class="caret"></span></a>
      <ul class="dropdown-menu" role="menu">
        <li><a href="#">Action</a></li>
        <li><a href="#">Another action</a></li>
        <li><a href="#">Something else here</a></li>
        <li class="divider"></li>
        <li><a href="#">Separated link</a></li>
        <li class="divider"></li>
        <li><a href="#">One more separated link</a></li>
      </ul>
    </li>
    <li class="dropdown">
      <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-expanded="false">Portfolio <span class="caret"></span></a>
      <ul class="dropdown-menu" role="menu">
        <li><a href="#">Action</a></li>
        <li><a href="#">Another action</a></li>
        <li><a href="#">Something else here</a></li>
        <li class="divider"></li>
        <li><a href="#">Separated link</a></li>
        <li class="divider"></li>
        <li><a href="#">One more separated link</a></li>
      </ul>
    </li>
    </ul>
     <form class="navbar-form navbar-right" role="search">
    <div class="form-group">
        <label for="search" class="sr-only">Search Bar</label>
        <input type="text" name="search" class="form-control" placeholder="Search" />
    </div>
    <button type="submit" class="btn btn-default">Submit</button>
  </form>
  </div><!-- /.navbar-collapse -->
  </div><!-- /.container-fluid -->
  </nav>

还有css:

.container {
   background:#30302f;
}

.menuIcon {
    background:rgb(200,200,200);
}

.navbar-brand {
   height:auto;
}

#brandImage {
   max-width:60%;
}

@media (max-width:600px) {

.navbar-brand {
width:95%;
padding:8px 2.5%;
}

#brandImage {
max-width:100%;
}
}

@media (min-width:990px) and (max-width:1200px) {
.navbar-brand {
width:250px;
}
}

请注意,我使用媒体查询来设置不同屏幕尺寸的样式。我不想对引导 css 进行重大更改。相反,尝试将 id 或 classes 添加到您需要设置样式的元素中(就像我对 menuIcon 和 brandImage 所做的那样)。尝试一次做一个小改动,看看它对设计有何影响。

如果这有帮助,请告诉我!

【讨论】:

  • 非常感谢您的帮助...这是您推荐的经过编辑的 HTML(尚未更改 CSS)。这是你建议我去的吗? jsfiddle.net/g3vmoz75
【解决方案2】:

您必须在引导定义之后包含新样式设置,以便引导 css 定义被覆盖。 所以首先需要包含默认的引导 css,然后是你的新样式定义文件,这样设置就会被新设置覆盖。

【讨论】:

    【解决方案3】:

    这个非常简单的伙伴,您应该将自定义 css 文件放在 bootstap css 文件下方。像这样:

    <!doctype html>
    <html>
    <head>
    
    
    <link rel = "stylesheet" href = "css/bootstrap.min.css"> <!-- first place bootstrap -->
    <link rel = "stylesheet" href = "css/style_samp2.css"> <!-- place of custom css file to override your bootstrap css file 
    
    </head>
    
    <body>
    <!-- your body -->
    </body>
        
    </html>

    这样你可以覆盖引导 css 文件

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-11-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-12-23
      • 2017-03-20
      • 2016-01-07
      相关资源
      最近更新 更多