css - How is Bootstrap's `nav` class making anchors move to their own line -


i'm trying figure out css causing a elements sit on own lines when have bootstrap's nav class, when can't find meaningful difference in styles applied them vs. a elements without nav. i've looked @ rules applied , compared computed styles, , i'm not seeing explain it.

here's example: a in first paragraph (with nav class) sits on own line, whereas a in second doesn't:

<link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/css/bootstrap.min.css" rel="stylesheet" />  <p>before <a id="a1" class="nav" href="#">link</a> after</p>  <p>before <a id="a2"             href="#">link</a> after</p>

if inspect a.nav element, see rule applied:

.nav {   padding-left: 0;   margin-bottom: 0;   list-style: none; } 

...but don't see how causes sit on own line. wrote code compare computed styles of 2 a elements in example above, in case somehow magically missing other rule. doesn't it; computed styles identical other list-style-type (and therefore list-style):

(function() {    var s1 = getcomputedstyle(document.getelementbyid("a1")),        s2 = getcomputedstyle(document.getelementbyid("a2")),        diffs = {};      function logdifferences(prop) {      var s1value = s1[prop],          s2value = s2[prop];      if (prop != "csstext" && s1value !== s2value) {        diffs[prop] = {          s1: s1value,          s2: s2value        }      }    }      object.keys(s1).foreach(logdifferences);    object.keys(s2).foreach(logdifferences);    object.keys(diffs).sort().foreach(function(prop) {      var diff = diffs[prop];      display(prop + ": '" + diff.s1 + "' != '" + diff.s2 + "'")    });      function display(msg) {      var p = document.createelement('p');      p.innerhtml = msg;      document.body.appendchild(p);    }  })();
<link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/css/bootstrap.min.css" rel="stylesheet" />  <p>before <a id="a1" class="nav" href="#">link</a> after</p>  <p>before <a id="a2"             href="#">link</a> after</p>

list-style-type shouldn't cause behavior, , indeed if overrule still behavior, computed styles of elements being identical:

(function() {    var s1 = getcomputedstyle(document.getelementbyid("a1")),        s2 = getcomputedstyle(document.getelementbyid("a2")),        diffs = {};      function logdifferences(prop) {      var s1value = s1[prop],          s2value = s2[prop];      if (prop != "csstext" && s1value !== s2value) {        diffs[prop] = {          s1: s1value,          s2: s2value        }      }    }      object.keys(s1).foreach(logdifferences);    object.keys(s2).foreach(logdifferences);    object.keys(diffs).sort().foreach(function(prop) {      var diff = diffs[prop];      display(prop + ": '" + diff.s1 + "' != '" + diff.s2 + "'")    });      function display(msg) {      var p = document.createelement('p');      p.innerhtml = msg;      document.body.appendchild(p);    }  })();
a.nav {    list-style-type: disc;  }
<link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/css/bootstrap.min.css" rel="stylesheet" />  <p>before <a id="a1" class="nav" href="#">link</a> after</p>  <p>before <a id="a2"             href="#">link</a> after</p>

so it's not list-style-type.

nor order of elements:

<link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/css/bootstrap.min.css" rel="stylesheet" />  <p>before <a id="a2"             href="#">link</a> after</p>  <p>before <a id="a1" class="nav" href="#">link</a> after</p>

what that's causing a.nav move own line?

note question isn't how fix it. we've fixed (they shouldn't have nav, using else before applied bootstrap project , we've renamed ours bootstrap's rules don't incorrectly applied). question what's causing it?

this due ::before , ::after pseudo-elements. they're set clear floated elements surrounding them, side affect of cause element pushed down new line.

example

the offending style quite simply:

...::before, ...::after {   display: table;   content: " "; } 

where ... here long chain of selectors including .nav::after , .nav::before.


Comments

Popular posts from this blog

javascript - Using jquery append to add option values into a select element not working -

Android soft keyboard reverts to default keyboard on orientation change -

jquery - javascript onscroll fade same class but with different div -