Skip to content Skip to sidebar Skip to footer

How To Make The Headline (H1 With Lines On The Sides) With CSS Only

I have made some a fiddle of such a headline that I need. CSS: body { background:url('http://subtlepatterns.subtlepatterns.netdna-cdn.com/patterns/tiny_grid.png'); } .main-co

Solution 1:

I came up with something like this http://jsfiddle.net/olgis/qkNfm/, similar to @GionaF solution just without fixed width, but still you will need a container to get red line underneath the text.

As I understand your criteria for solution is:

  • any background
  • NO JavaScript or jQuery
  • css liquid layout (NO fixed width)
  • minimal HTML
  • cross browser solution

In this post http://www.impressivewebs.com/centered-heading-horizontal-line/, they are discussing "Centered Heading Overlaying a Horizontal Line with CSS" a lot of different solutions as well as a cross platform issue.

My guess would be you are aiming for something like this http://result.dabblet.com/gist/1560674 a neat solution with just one H1 .


Solution 2:

It's hard without setting a background on h1's text, so it's a tricky workaround.

Check this demo

HTML:

<div class="main-container">
    <h1 class="headline">
        <span>&nbsp;</span>
        <span>OUR LATEST WORKS</span>
        <span>&nbsp;</span>
    </h1>
</div>

CSS:

.main-container {
    width: 600px;
    margin: 0 auto;
    box-shadow:0 0 5px #d00;
}
.headline {
    font: normal 33px Georgia, "Times New Roman", Times, serif; /* no line-height here */
    color: #3E3E3E;
    display:table;
    text-align:center;
}
.headline > span {
    display:table-cell;
}
.headline > span:nth-child(2) {
    width:50%;
    padding:0 0.2em;
    white-space:nowrap;
    line-height:1.2em;
}
.headline > span:nth-child(1), .headline > span:nth-child(3) {
    border-top:1px solid #CCC;
    width:25%;
    position:relative;
    top:0.6em;
}


Solution 3:

......................

Hi now check to this demo http://jsfiddle.net/zxzLT/22/

add this css

.headline {
    display:block;
    margin: 40px 0;
    padding:30px;
    font: normal 33px/1.1 Georgia, "Times New Roman", Times, serif;
    color: #3E3E3E;
text-align:center;
    white-space: nowrap;
    position:relative;
}
.headline:after{
content:'';
    position:absolute;
    border-top: 1px solid #aaa;
    left:0;
    right:0;
    height:1px;
    z-index:-1;
    top:50%;
}

.headline > span {
    display:inline-block;
    background:url("http://subtlepatterns.subtlepatterns.netdna-cdn.com/patterns/tiny_grid.png");
    padding:0 30px;
}

Live demo


Solution 4:

A solution with only one element h1 (no span inside, no div wrapper) and no js (pure css) with transparent background:

http://puigcerber.wordpress.com/2013/03/08/centered-heading-overlaying-a-horizontal-line-with-css/

See it in action: http://jsfiddle.net/vLwDf/970/


Solution 5:

You could use border-right and left if thats what you need. See the link http://www.quackit.com/css/properties/css_border-right-style.cfm for more details on how this works.

EDIT You could put the borders on the h1 element instead of in the container of that h1


Post a Comment for "How To Make The Headline (H1 With Lines On The Sides) With CSS Only"