如何将标题居中放置在页面上

4

你好,我正在尝试将标题放在页面中央,我的页面有两个标志需要放在标题的两侧。我尝试过使用text-align:centermargin:0px auto但都没有起作用?是我的布局需要更改吗?还是我的CSS缺少了什么?

以下是我的代码,或者您可以查看jsFiddle

如果您知道如何解决这个问题或者在以后处理类似问题时应该注意些什么,请不吝赐教。

index.html

<div class="wrapper">


<header>
<h1>Website Service</h1>
<img src="imgs/logoa.png" id="sjplogo"/>
<img src="imgs/logob.png" id="sslogo"/>
</header> 
<div class="maincontent"></div>
<footer>
</footer>
</div>

css/style.css

@charset "utf-8"; /* CSS文档 */

/********************************
* CSS Reset                     *
*********************************/
html, body, div, span, applet, object, iframe,h1, h2, h3, h4, h5, h6, p, blockquote, pre,
a, abbr, acronym, address, big, cite, code,del, dfn, em, img, ins, kbd, q, s, samp, small, strike, strong, sub, sup, tt, var, b, u, i, center, dl, dt, dd, ol, ul, li, fieldset, form, label, legend, table, caption, tbody, tfoot, thead, tr, th, td,
article, aside, canvas, details, embed, figure, figcaption, footer, header, hgroup, 
menu, nav, output, ruby, section, summary, time, mark, audio, video {
    margin: 0;
    padding: 0;
    border: 0;
    font-size: 100%;
    font: inherit;
    vertical-align: baseline;
}
/* HTML5 display-role reset for older browsers */
article, aside, details, figcaption, figure,footer, header, hgroup, menu, nav, section {
    display: block;
}

body {
       height:100%;

    line-height: 1;
    background-color:#EEEEEE;
        font-family:Gotham, "Helvetica Neue", Helvetica, Arial, sans-serif;

}

ol, ul {
    list-style: none;
}

blockquote, q {
    quotes: none;
}

blockquote:before, blockquote:after,
q:before, q:after {
    content: '';
    content: none;
}

table {
    border-collapse: collapse;
    border-spacing: 0;
}

/********************************
* Main Styles                   *
*********************************/

#wrapper {
height:100% 
}

header {
background: #062141; /* Old browsers */
/* IE9 SVG, needs conditional override of 'filter' to 'none' */
background: url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiA/Pgo8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgd2lkdGg9IjEwMCUiIGhlaWdodD0iMTAwJSIgdmlld0JveD0iMCAwIDEgMSIgcHJlc2VydmVBc3BlY3RSYXRpbz0ibm9uZSI+CiAgPGxpbmVhckdyYWRpZW50IGlkPSJncmFkLXVjZ2ctZ2VuZXJhdGVkIiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSIgeDE9IjAlIiB5MT0iMCUiIHgyPSIwJSIgeTI9IjEwMCUiPgogICAgPHN0b3Agb2Zmc2V0PSIwJSIgc3RvcC1jb2xvcj0iIzA2MjE0MSIgc3RvcC1vcGFjaXR5PSIxIi8+CiAgICA8c3RvcCBvZmZzZXQ9IjI1JSIgc3RvcC1jb2xvcj0iIzBmMmY0ZSIgc3RvcC1vcGFjaXR5PSIxIi8+CiAgICA8c3RvcCBvZmZzZXQ9IjYyJSIgc3RvcC1jb2xvcj0iIzJiNTg3OCIgc3RvcC1vcGFjaXR5PSIxIi8+CiAgICA8c3RvcCBvZmZzZXQ9Ijk5JSIgc3RvcC1jb2xvcj0iIzJiNTg3OCIgc3RvcC1vcGFjaXR5PSIxIi8+CiAgPC9saW5lYXJHcmFkaWVudD4KICA8cmVjdCB4PSIwIiB5PSIwIiB3aWR0aD0iMSIgaGVpZ2h0PSIxIiBmaWxsPSJ1cmwoI2dyYWQtdWNnZy1nZW5lcmF0ZWQpIiAvPgo8L3N2Zz4=);
background: -moz-linear-gradient(top,  #062141 0%, #0f2f4e 25%, #2b5878 62%, #2b5878 99%); /* FF3.6+ */
background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#062141), color-stop(25%,#0f2f4e), color-stop(62%,#2b5878), color-stop(99%,#2b5878)); /* Chrome,Safari4+ */
background: -webkit-linear-gradient(top,  #062141 0%,#0f2f4e 25%,#2b5878 62%,#2b5878 99%); /* Chrome10+,Safari5.1+ */
background: -o-linear-gradient(top,  #062141 0%,#0f2f4e 25%,#2b5878 62%,#2b5878 99%); /* Opera 11.10+ */
background: -ms-linear-gradient(top,  #062141 0%,#0f2f4e 25%,#2b5878 62%,#2b5878 99%); /* IE10+ */
background: linear-gradient(to bottom,  #062141 0%,#0f2f4e 25%,#2b5878 62%,#2b5878 99%); /* W3C */
filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#062141', endColorstr='#2b5878',GradientType=0 ); /* IE6-8 */
    height:100px;
    width:auto;

}

header h1 {
    text-align:center;
    margin:0px auto;
    font-size:42px;
    color:white;
    font-family:"ufonts com perpetua 2";
    display:inline-block;
}

.maincontent {

height:600px;

}
#sjplogo {
float:left; 

}
#sslogo {
float:right;        

}

footer {
background: #062141; /* Old browsers */
/* IE9 SVG, needs conditional override of 'filter' to 'none' */
background: url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiA/Pgo8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgd2lkdGg9IjEwMCUiIGhlaWdodD0iMTAwJSIgdmlld0JveD0iMCAwIDEgMSIgcHJlc2VydmVBc3BlY3RSYXRpbz0ibm9uZSI+CiAgPGxpbmVhckdyYWRpZW50IGlkPSJncmFkLXVjZ2ctZ2VuZXJhdGVkIiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSIgeDE9IjAlIiB5MT0iMCUiIHgyPSIwJSIgeTI9IjEwMCUiPgogICAgPHN0b3Agb2Zmc2V0PSIwJSIgc3RvcC1jb2xvcj0iIzA2MjE0MSIgc3RvcC1vcGFjaXR5PSIxIi8+CiAgICA8c3RvcCBvZmZzZXQ9IjI1JSIgc3RvcC1jb2xvcj0iIzBmMmY0ZSIgc3RvcC1vcGFjaXR5PSIxIi8+CiAgICA8c3RvcCBvZmZzZXQ9IjYyJSIgc3RvcC1jb2xvcj0iIzJiNTg3OCIgc3RvcC1vcGFjaXR5PSIxIi8+CiAgICA8c3RvcCBvZmZzZXQ9Ijk5JSIgc3RvcC1jb2xvcj0iIzJiNTg3OCIgc3RvcC1vcGFjaXR5PSIxIi8+CiAgPC9saW5lYXJHcmFkaWVudD4KICA8cmVjdCB4PSIwIiB5PSIwIiB3aWR0aD0iMSIgaGVpZ2h0PSIxIiBmaWxsPSJ1cmwoI2dyYWQtdWNnZy1nZW5lcmF0ZWQpIiAvPgo8L3N2Zz4=);
background: -moz-linear-gradient(top,  #062141 0%, #0f2f4e 25%, #2b5878 62%, #2b5878 99%); /* FF3.6+ */
background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#062141), color-stop(25%,#0f2f4e), color-stop(62%,#2b5878), color-stop(99%,#2b5878)); /* Chrome,Safari4+ */
background: -webkit-linear-gradient(top,  #062141 0%,#0f2f4e 25%,#2b5878 62%,#2b5878 99%); /* Chrome10+,Safari5.1+ */
background: -o-linear-gradient(top,  #062141 0%,#0f2f4e 25%,#2b5878 62%,#2b5878 99%); /* Opera 11.10+ */
background: -ms-linear-gradient(top,  #062141 0%,#0f2f4e 25%,#2b5878 62%,#2b5878 99%); /* IE10+ */
background: linear-gradient(to bottom,  #062141 0%,#0f2f4e 25%,#2b5878 62%,#2b5878 99%); /* W3C */
filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#062141', endColorstr='#2b5878',GradientType=0 ); /* IE6-8 */
height:100px;
postion:absoutle;
bottom:0;
}
4个回答

1
"

h2是默认的块级元素,您正在使用display: inline-block;,因此它不会居中您的文本,因为它不再占用整个水平空间,所以您需要摆脱display: inline-block;

演示

此外,如果您想在文本旁边放置两个图像,请将所有三个元素包装在容器内,为您的容器元素分配一些fixed width,并使用margin: auto;来正确定位图像,您可以为包装器元素使用position: relative;,然后在容器元素内部使用position: absolute;来定位每个元素。

定位演示

"
<div class="header">
    <div class="wrap">
        <span class="img_1"></span>
        <h2>Hello</h2>
        <span class="img_2"></span>
    </div>
</div>

.header .wrap {
    border: 1px solid #f00;
    width: 100px;
    margin: auto;
    text-align: center;
    position: relative;
}

.header .wrap .img_1, .header .wrap .img_2 {
    border: 1px solid #0f0;
    position: absolute;
    height: 20px;
    width: 20px;
    top: 25px;
}

.header .wrap .img_1 {
    left: 0;
}

.header .wrap .img_2 {
    right: 0;
}

感谢您,我使用inline-block的原因是为了让标志和标题保持在同一行,但上面的示例将标志放在了不同的行上,是否有任何方法可以让这三个元素都保持在同一行?@Mr.Alien - user1794603
@Gurtarandeep 将所有元素包裹在一个 div 中,为 div 分配一些 固定宽度,然后使用 margin: auto;。只需阅读我的答案,它涵盖了所有内容。 - Mr. Alien

1
请您使用以下代码Demo
<header>
    <center><h1>Website Service</h1></center>
    <img src="imgs/logoa.png" id="sjplogo"/>
    <img src="imgs/logob.png" id="sslogo"/>
</header> 

感谢您的输入,但现在徽标与标题不对齐了吗?@Shakti - user1794603
"center" 标签已经过时,您不应再使用它们。 - Mr. Alien

0

你应该为 header 设置一个具体的 width,以使 margin:0 auto 生效。


0

从CSS中删除display:inline-block;代码并执行代码。

演示


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接