Reputation: 7792
I'm really new to using HTML and CSS and I'm trying to create a rectangular box -
<html>
<head>
<link rel="stylesheet" type="text/css" href="style2.css" />
<link rel="stylesheet" type="text/css" href="stylesAgg.css" />
</head>
<body>
<h1>Testing the class page</h1>
<ul>
{% for book in books %}
<div id ="bookInfo" style = "display">
<div>
<text class= "text" id = "bookTitle">{{ book.title|safe }}</text></br>
<text class= "text" id= "bookAuthor">by {{ book.author|safe }}</text></br>
</div>
</div>
{% endfor %}
</ul>
</body>
</html>
My css code is here -
#bookInfo {
float:right;
width:700px;
height:300px;
background-color:#dd2424;
padding-left:12px;
padding-top:17px;
}
why doesn't my html page display the coloured rectangle?
Thanks!
EDIT- I've included all the advice below and it still doesn't work - however, when I view the page through firebug, it says that there are no rules(there's some 404 error, despite the fact that I have the style sheets) - I think this is the problem- how do I fix it?
Upvotes: 0
Views: 1283
Reputation: 1286
You have few errors in your code.
class="bookInfo"
instead of id. The corresponding css selector could be: .bookInfo {}
(notice the dot at the start)<div id ="bookInfo" style = "display">
is invalid. If you wanted to set css display property, you should assign some value to it. Otherwise, you should delete the whole attribute.<li>
elements of the <ul>
.The correct HTML code should look like this:
<html>
<head>
<link rel="stylesheet" type="text/css" href="style2.css" />
<link rel="stylesheet" type="text/css" href="stylesAgg.css" />
</head>
<body>
<h1>Testing the class page</h1>
<ul>
{% for book in books %}
<li>
<div class ="bookInfo">
<div>
<text class= "text" id = "bookTitle">{{ book.title|safe }}</text></br>
<text class= "text" id= "bookAuthor">by {{ book.author|safe }}</text></br>
</div>
</div>
</li>
{% endfor %}
</ul>
</body>
</html>
and css:
.bookInfo {
float:right;
width:700px;
height:300px;
background-color:#dd2424;
padding-left:12px;
padding-top:17px;
}
Also make sure, that css file is really loaded with the page. I recommnend usage of Firebug (Firefox extension) or Chrome dev tools... Right click anywhere on page - inspect element. Very helpful.
Upvotes: 1
Reputation: 55718
IDs are supposed to be unique in an HTML page. For formatting multiple elements on a page with similar rules, use the class
attribute. Try to change the id
attribute on your div
to a class
. Also change your CSS fro #bookInfo
to .bookInfo
.
Also, <ul>
starts an unordered list. The only tag type that is allowed directly inside of it is a <li>
which creates an entry in that list. <div>
's are not allowed here. You could either change the <div>
to a <li>
or just drop the <ul>
altogether, depending on your actual semantic desires.
Another wrong usage are your </br>
tags. If a tag starts with </
it is considered a closing tag, as opposed to <br/>
which is an empty tag and is probably what you meant here.
As a final advise to style, you should stick to all lower classes and IDs.It makes debugging much easier and looks better.
Upvotes: 2