CSS无法将文本居中于Div

时间:2016-07-02 20:39:13

标签: html css alignment center vertical-alignment

观察我的以下横幅:

enter image description here

我想要"我的网站"和#34;你的停止!"文本在垂直和水平方向上对齐,但我很难实现这一点。

JS小提琴:http://jsfiddle.net/z63234p1/



masthead {
  top: 32px;
  padding-right: 0px;
  background: #000;
  padding-left: 0;
  max-height: 100px;
  border-bottom: none;
  position: fixed;
  z-index: 3;
  width: 100%;
  min-height: 73px;
  color: #000;
  display: block;
  box-sizing: inherit;
}

.sidebar-toggle {
  float: left;
  border: 3px solid grey;
  border-right: none;
  height: 82px;
  margin-right: 0;
  width: 5%;
  overflow: hidden;
  padding: 0;
  color: #000;
  text-align: center;
}

button {
  border-radius: 0;
  transition: all 125ms ease-out;
  cursor: pointer;
  -webkit-appearance: button;
  font-size: 100%;
  margin: 0;
  max-width: 100%;
  vertical-align: baseline;
  line-height: 1.5;
  display: inline-block;
  align-items: flex-start;
}

.screen-reader-text {
  clip: rect(1px, 1px, 1px, 1px);
  position: absolute !important;
  height: 1px;
  width: 1px;
  overflow: hidden;
}

.sidebar-toggle:before {
  content: "\f419";
  height: 24px;
  width: 16px;
  color: inherit;
  font-size: 16px;
  line-height: 24px;
  speak: none;
  text-decoration: inherit;
  vertical-align: top;
  font-style: normal;
  font-weight: normal
    display: inline-block;
  font-family: Genericons;
  -webkit-font-smoothing: antialiased;
}

.site-branding {
  width: 95%;
  display: inline-flex;
  margin-top: 0;
  margin-bottom: 0;
  float: left;
  max-width: 100%;
}

#sitelogo {
  display: inline-flex;
  vertical-align: middle;
  text-align: center;
}

.site-title {
  border: 3px solid grey;
  font-family: Impact, Charcoal, sans-serif;
  font-weight: normal;
  margin: 0 auto;
  text-align: center;
  line-height: normal;
  min-width: 150px;
  padding: 3px 8px;
  font-size: 6vh;
  height: 100%;
  color: white;
  float: left;
  max-width: 100%;
}

h1 {
  clear: both;
}

.site-description {
  background: #fff500;
  color: black;
  display: block;
  font-family: Impact, Charcoal, sans-serif;
  margin: auto auto;
  text-align: center;
  height: 100%;
  border-left: none;
  border-top: 3px solid grey;
  border-bottom: 3px solid grey;
  border-right: 3px solid grey;
  display: block;
  padding: 0 16px;
  font-size: 3vh;
  line-height: 2.3;
  float: left;
  clear: none;
}

<header id="masthead" class="site-header" role="banner">
  <button class="sidebar-toggle" aria-expanded="false" ><span class="screen-reader-text"><?php _e( 'Toggle Sidebar', 'boardwalk' ); ?></span></button>
  <div class="site-branding">
    <div id="sitelogo" class="clear">
      <h1 class="site-title"><a href="http://test.com" rel="home">My Website</a></h1>
      <h2 class="site-description">Your Go To Stop</h2>
    </div>
  </div>
</header>
&#13;
&#13;
&#13;

我知道上面的图片并不像JS Fiddle的输出一样,我知道我在测试网站上得到的是侥幸而不是实际的输出

有人可以帮助我解决我的CSS问题,以便所有文本在其单元格中垂直对齐并在徽标上水平对齐吗?

提前谢谢。

3 个答案:

答案 0 :(得分:1)

使用此Css:

<style type="text/css">
    #masthead {
    top: 32px;
    padding-right: 0px;
    background: #000;
    padding-left: 0;
    max-height: 100px;
    border-bottom: none;
    position: fixed;
    z-index: 3;
    width: 100%;
    min-height: 73px;
    color: #000;
    display: block;
    box-sizing: inherit;
}

.sidebar-toggle {
    float: left;
    border: 3px solid grey;
    border-right: none;
    height: 73px;
    margin-right: 0;
    width: 5%;
    overflow: hidden;
    padding: 0;
    color: #000;
    text-align: center;
}

button {
    border-radius: 0;
    transition: all 125ms ease-out;
    cursor: pointer;
    -webkit-appearance: button;
    font-size: 100%;
    margin: 0;
    max-width: 100%;
    vertical-align: baseline;
    line-height: 1.5;
    display: inline-block;
    align-items: flex-start;
}

.screen-reader-text {
    clip: rect(1px, 1px, 1px, 1px);
    position: absolute !important;
    height: 1px;
    width: 1px;
    overflow: hidden;
}

.sidebar-toggle:before {
    content: "\f419";
    height: 24px;
    width: 16px;
    color: inherit;
    font-size: 16px;
    line-height: 24px;
    speak: none;
    text-decoration: inherit;
    vertical-align: top;
    font-style: normal;
    font-weight: normal
    display: inline-block;
    font-family: Genericons;
    -webkit-font-smoothing: antialiased;
}

.site-branding {
    width: 95%;
    display: inline-flex;
    margin-top: 0;
    margin-bottom: 0;
    float: left;
    max-width: 100%;
}

#sitelogo {
    display: inline-flex;
    vertical-align: middle;
    text-align: center;
}

.site-title {
    border: 3px solid grey;
    font-family: Impact, Charcoal, sans-serif;
    font-weight: normal;
    margin: 0 auto;
    text-align: center;
    line-height: normal;
    min-width: 150px;
    padding: 4px 8px;
    font-size: 6vh;
    height: 100%;
    color: white;
    float: left;
    max-width: 100%;
}

h1 {
    clear: both;
}

.site-description {
     background: #fff500;
    color: black;
    font-family: Impact, Charcoal, sans-serif;
    margin: auto auto;
    text-align: center;
    height: 100%;
    border-left: none;
    border-top: 3px solid grey;
    border-bottom: 3px solid grey;
    border-right: 3px solid grey;
    display: block;
    padding: 6px 16px;
    font-size: 3vh;
    line-height: 2.3;
    float: left;
    clear: none;
}
</style>

答案 1 :(得分:1)

#sitelogo的新css:

display: inline-flex;
align-items: stretch;

.site-title的新css:

border: 3px solid grey;
font-family: Impact, Charcoal, sans-serif;
font-weight: normal;
min-width: 150px;
padding: 3px 8px;
font-size: 6vh;
color: white;
display: flex;
align-items: center;
justify-content: center;

.site-description的新css:

background: #fff500;
color: black;
font-family: Impact, Charcoal, sans-serif;
border-left: none;
border-top: 3px solid grey;
border-bottom: 3px solid grey;
border-right: 3px solid grey;
padding: 0 16px;
font-size: 3vh;
display: flex;
align-items: center;
justify-content: center;

除此之外,我强烈建议您不要将vh用于font-size

答案 2 :(得分:0)

我弄乱了你的行高site-title以及site-description的行高和高度。这是我的结果:

    masthead {
  top: 32px;
  padding-right: 0px;
  background: #000;
  padding-left: 0;
  max-height: 100px;
  border-bottom: none;
  position: fixed;
  z-index: 3;
  width: 100%;
  min-height: 73px;
  color: #000;
  display: block;
  box-sizing: inherit;
}

.sidebar-toggle {
  float: left;
  border: 3px solid grey;
  border-right: none;
  height: 82px;
  margin-right: 0;
  width: 5%;
  overflow: hidden;
  padding: 0;
  color: #000;
  text-align: center;
}

button {
  border-radius: 0;
  transition: all 125ms ease-out;
  cursor: pointer;
  -webkit-appearance: button;
  font-size: 100%;
  margin: 0;
  max-width: 100%;
  vertical-align: baseline;
  line-height: 1.5;
  display: inline-block;
  align-items: flex-start;
}

.screen-reader-text {
  clip: rect(1px, 1px, 1px, 1px);
  position: absolute !important;
  height: 1px;
  width: 1px;
  overflow: hidden;
}

.site-branding {
  width: 95%;
  display: inline-flex;
  margin-top: 0;
  margin-bottom: 0;
  float: left;
  max-width: 100%;
}

#sitelogo {
  display: inline-flex;
  vertical-align: middle;
  text-align: center;
}

.site-title {
  border: 3px solid grey;
  font-family: Impact, Charcoal, sans-serif;
  font-weight: normal;
  margin: 0 auto;
  text-align: center;
  line-height: 58px;
  min-width: 150px;
  padding: 3px 8px;
  font-size: 6vh;
  height: 100%;
  color: white;
  float: left;
  max-width: 100%;
}

h1 {
  clear: both;
}

.site-description {
  background: #fff500;
  color: black;
  display: block;
  font-family: Impact, Charcoal, sans-serif;
  margin: auto auto;
  text-align: center;
  height: 108%;
  border-left: none;
  border-top: 3px solid grey;
  border-bottom: 3px solid grey;
  border-right: 3px solid grey;
  display: block;
  padding: 0 16px;
  font-size: 3vh;
  line-height: 3.7;
  float: left;
  clear: none;
}

.sidebar-toggle:before {
  content: "\f419";
  height: 24px;
  width: 16px;
  color: inherit;
  font-size: 16px;
  line-height: 24px;
  speak: none;
  text-decoration: inherit;
  vertical-align: top;
  font-style: normal;
  font-weight: normal display: inline-block;
  font-family: Genericons;
  -webkit-font-smoothing: antialiased;
}

这是一个差异比较,看看差异:http://www.mergely.com/vGQedH1p/这是你在找什么?