简体   繁体   中英

HTML CSS, Bootstrap responsive DIV height

Good day,

I am trying to make my first responsive layout with the help of the Bootstrap Framework.

As a base layout I have taken an example template and I am now trying to modify this template.

I have added the following:

    <div class="row col-xs-12 col-md-6 border1" id="HeadBar">
        This is not showing up
    </div>

Here I want to place the page header (logo and company title)

My CSS code :

#HeadBar {
    background-color: #ffffff;
    height: 10%;
    width: 100%;
    position: relative;
    display: block;
}
#HeadBar h1 {
    margin: 0px;
    padding: 10px;
}

The problem is.. The #HeadBar doesn't show up at all. Let alone being responsive.

Adding a H1 tag does make it visible. But I want it to be visible without any additions.

I hope that anyone could see my errors. I know this is very basic. But I need to get a hang of it

https://jsfiddle.net/ferencik/zb50wgve/

Still need some addition, like adding z-index:1001 (or any value more than 1000 because you have class navbar-static-top in your nav - it have z-index:1000 - which overlap your #HeadBar ) in #HeadBar

#HeadBar {
    background-color: #FFF;
    width: 100%;
    position: relative;
    display: block;
    height: 10%;
    z-index: 1001;
}

Add z-index: 9999; to the css.

Fiddle

Instead of using z-index , i would recommend fixing your position issues which are the actual cause of the problem.

I would also remove the class .row from the #headBar div. .row is used for margins within a container and shouldn't be use on the parent container itself.

On .navbar , I have set the position back to initial as it was always fixing to the top of the parent instead of finding its place below the previous sibling.

 /* GLOBAL STYLES -------------------------------------------------- */ /* Padding below the footer and lighter body text */ body { margin: 0px; padding: 0px; padding-bottom: 40px; color: #5a5a5a; } /* CUSTOMIZE THE NAVBAR -------------------------------------------------- */ /* Special class on .container surrounding .navbar, used for positioning it into place. */ .navbar-wrapper { position: absolute; top: 0; right: 0; left: 0; z-index: 20; } /* Flip around the padding for proper display in narrow viewports */ .navbar-wrapper > .container { padding-right: 0; padding-left: 0; } .navbar-wrapper .navbar { padding-right: 15px; padding-left: 15px; position: initial; } .navbar-wrapper .navbar .container { width: auto; } /* CUSTOMIZE THE CAROUSEL -------------------------------------------------- */ /* Carousel base class */ .carousel { height: 500px; margin-bottom: 60px; } /* Since positioning the image, we need to help out the caption */ .carousel-caption { z-index: 10; } /* Declare heights because of positioning of img element */ .carousel .item { height: 500px; background-color: #777; } .carousel-inner > .item > img { position: absolute; top: 0; left: 0; min-width: 100%; height: 500px; } /* MARKETING CONTENT -------------------------------------------------- */ /* Center align the text within the three columns below the carousel */ .marketing .col-lg-4 { margin-bottom: 20px; text-align: center; } .marketing h2 { font-weight: normal; } .marketing .col-lg-4 p { margin-right: 10px; margin-left: 10px; } /* Featurettes ------------------------- */ .featurette-divider { margin: 80px 0; /* Space out the Bootstrap <hr> more */ } /* Thin out the marketing headings */ .featurette-heading { font-weight: 300; line-height: 1; letter-spacing: -1px; } /* RESPONSIVE CSS -------------------------------------------------- */ @media (min-width: 768px) { /* Navbar positioning foo */ .navbar-wrapper { margin-top: 0px; } .navbar-wrapper .container { padding-right: 15px; padding-left: 15px; } .navbar-wrapper .navbar { padding-right: 0; padding-left: 0; } /* The navbar becomes detached from the top, so we round the corners */ .navbar-wrapper .navbar { border-radius: 4px; } /* Bump up size of carousel content */ .carousel-caption p { margin-bottom: 20px; font-size: 21px; line-height: 1.4; } .featurette-heading { font-size: 50px; } } @media (min-width: 992px) { .featurette-heading { margin-top: 120px; } } #HeadBar { background-color: #ffffff; height: 10%; width: 100%; position: relative; display: block; } #HeadBar h1 { margin: 0px; padding: 10px; } 
 <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <link rel="stylesheet" type="text/css" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/css/bootstrap.min.css"> <link rel="stylesheet" type="text/css" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/css/bootstrap-theme.min.css"> <script type="text/javascript" src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/js/bootstrap.min.js"></script> <div class="navbar-wrapper"> <div class="container"> <div class="col-xs-12 col-md-6 border1" id="HeadBar"> This is not showing up </div> <nav class="navbar navbar-inverse navbar-static-top"> <div class="container"> <div class="navbar-header"> <button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#navbar" aria-expanded="false" aria-controls="navbar"> <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="#">Project name</a> </div> <div id="navbar" class="navbar-collapse collapse"> <ul class="nav navbar-nav"> <li class="active"><a href="#">Home</a> </li> <li><a href="#about">About</a> </li> <li><a href="#contact">Contact</a> </li> </ul> </div> </div> </nav> </div> </div> 

First, question to solve this is what are you trying to achieve? this element with text should be fixed? static?

Second, the element with class row must wrap the elements with col-something-number

Thrid, If the nav is static don't break the nav component just add a div on top, see this fiddle https://jsfiddle.net/6evtc3ry/

CSS

Change Add the property in class .navbar-wrapper .navbar

 float:left;
 width:100%

See the fiddle https://jsfiddle.net/zb50wgve/4/

OR

Structural changes

Add wrap up of .row for #HeadBar . and remove the class row from #HeadBar

Code:

<div class="row">
    <div class=" col-xs-12 col-md-6 border1" id="HeadBar">
          This is not showing up
    </div>
</div>

See fiddle : https://jsfiddle.net/zb50wgve/5/

With bootstrap, you have to separate row DIVs with col-... ones, like this:

 <div class="row" id="HeadBar">
     <div class="col-xs-12 col-md-6 border1">
       Something to show
     </div>
</div>

Because col-... divs use float system, and row allows to clear your DOM. By the way, using % for height with a static or relative position does not work. You have to use pixels, em or what you want.

#HeadBar {
   background-color: #ffffff;
   min-height: 50px; // example
   width: 100%;
   position: relative;
   display: block;
}

or simply use fixed or absolute property to set a pourcentage value:

 #HeadBar {
   background-color: #ffffff;
   height: 10%;
   width: 100%;
   position: fixed;
   left: 0;
   top: 0;
   display: block;
}

Hope it will help !

Simply use a div instead of applying all kind of classes just use #headbar as you are using

<div id="HeadBar" class="">
                This is not showing up
            </div>

This will work well

You can use this,

#HeadBar 
{
  display:inline-flex;
  height:10%;
  width:100%;
}

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM