I have a webpage that displays the name of a "product", with edit/delete links next to it on the same line. Example:
Product 1 (Edit | Delete)
I want the product name to have a large font size, and the edit/delete buttons to have regular font size (i.e. same as paragraphs and whatnot). And I want them to appear inline, like the example above. I'm just wondering what HTML/CSS I should utilise in order to achieve this.
If I use a h1 element for the product name, it pushes the edit/delete links to the next line because h1 is a block element. So I could override h1 in my CSS and make display: inline
, but messing with the natural appearance of h1 seems like something that would be against best practices (?).
The other option is to simply not use a h1 element at all and use a couple of inline divs or spans. But not using a h1 element for the top-level header of a webpage seems like something that would go against best practices too... It would also require me to explicitly set the font sizes, meaning I can't use the default font sizes of h1 and p elements, which I use throughout the rest of the website.
What's the best approach in this situation? I know it's sort of a simple/trivial question, but it would be nice to know anyway.
The h1 element is used to indicate the most important (or highest-level) heading on the page. In total, we have six heading levels to choose from—h1 to h6—to add structure to the web page. h1 is the highest heading level (and, by default, the largest in terms of font size) and h6 the lowest (and smallest).
To get all elements to appear on one line the easiest way is to: Set white-space property to nowrap on a parent element; Have display: inline-block set on all child elements.
To select all level 1 headings we would use the h1 selector. Element selectors will apply CSS to every instance of that element in your document.
Yeah, those links don't belong in your <h1>
. One way would be to float the heading, something like this:
<h1>Title</h1>
<div class="tools"> <!-- perhaps use an unordered list here and not div -->
<a href="#">Edit</a>
<a href="#">Delete</a> <!-- use a form with POST to delete instead -->
</div>
h1 { float:left; }
http://jsfiddle.net/JeuXt/
There's no universal best practice or method for the display part (the CSS), but you do want to keep your HTML clean and have everything semantically correct.
Using wrapper div
for the h1
and floating it might help you.
Is this what you are looking for? : http://jsfiddle.net/Pt2BZ/
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With