HTML/CSS/Style Basics/Child Selector

Материал из Web эксперт
Перейти к: навигация, поиск

Apply styles to label elements, but only if they appear inside of an input form

 
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html>
     <head>
        <style type="text/css">
            form label {
                display: block;
                font-weight: bold;
                margin: 5px;
                width: 225px;
                text-align: right;
                background: black;
            }
        </style>
        <title>Feedback Form - Widgets and What"s-its</title>
    </head>
    <body>
        <h1>Widgets and What"s-its</h1>
        <form>
            <h2>Tell us what"s on your mind..</h2>
            <div>
                <label for="feedback[name]">Name:</label>
                <input type="text" size="25" name="feedback[name]" />
            </div>
            <div>
                <label for="feedback[email]">Email:</label>
                <input type="text" size="25" name="feedback[email]" />
            </div>
            <div>
                <label for="feedback[address]">Address:</label>
                <textarea name="feedback[address]" cols="40" rows="3" wrap="virtual"></textarea>
            </div>
            <div>
                <label for="feedback[message]">Comments:</label>
                <textarea name="feedback[message]" cols="40" rows="6" wrap="virtual"></textarea>
            </div>
            <div>
                <label for="feedback[heard]">How"d you hear about us?</label>           
                <select name="feedback[heard]">
                    <option value="">Choose...</option>
                    <option value="newspaper">Newspaper</option>
                    <option value="magazine">Magazine</option>
                    <option value="television">Television</option>
                    <option value="radio">Radio</option>
                    <option value="other">Other</option>
                </select>
            </div>
        </form>
    </body>
</html>



Child Selector Demo

 
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title></title>
<style type="text/css">
#my-id > * { border:3px solid black; }   
</style>
</head>
<body> 
<p class="my-class">p.my-class</p> 
<div id="my-id"> 
<ol> 
<li>div ol li</li> 
<li>div ol li</li> 
<li> 
<p class="my-class">div ol li p.my-class </p> 
</li> 
</ol> 
</div> 
</body> 
</html>



Direct Child Selectors

 

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html>
     <head>
        <style type="text/css">
            form > div > label {
                float: left;
            }
            form > div {
                clear: left;
            }
            div > input, div > select {
                margin: 3px;
                padding: 4px;
            }
            select > option {
                padding: 4px;
            }
        </style>
        <title>Feedback Form - Widgets and What"s-its</title>
    </head>
    <body>
        <h1>Widgets and What"s-its</h1>
        <form>
            <h2>Tell us what"s on your mind..</h2>
            <div>
                <label for="feedback[name]">Name:</label>
                <input type="text" size="25" name="feedback[name]" />
            </div>
            <div>
                <label for="feedback[email]">Email:</label>
                <input type="text" size="25" name="feedback[email]" />
            </div>
            <div>
                <label for="feedback[address]">Address:</label>
                <textarea name="feedback[address]" cols="40" rows="3" wrap="virtual"></textarea>
            </div>
            <div>
                <label for="feedback[message]">Comments:</label>
                <textarea name="feedback[message]" cols="40" rows="6" wrap="virtual"></textarea>
            </div>
            <div>
                <label for="feedback[heard]">How"d you hear about us?</label>           
                <select name="feedback[heard]">
                    <option value="">Choose...</option>
                    <option value="newspaper">Newspaper</option>
                    <option value="magazine">Magazine</option>
                    <option value="television">Television</option>
                    <option value="radio">Radio</option>
                    <option value="other">Other</option>
                </select>
            </div>
        </form>
    </body>
</html>



Set style for direct child

 
<html>
 <head>
  <title>Set style for direct child</title>
<style type="text/css">
p > strong {
  text-decoration: underline;
} 
</style>
<body>
<div>
 <p>Nothing happens to this part of the sentence because this 
<strong>strong</strong> isn"t the direct child of div.</p> 
 However, this <strong>strong</strong> is the child of div. 
Therefore, it receives the style dictated in the CSS rule.
</div>
<body>



Use > to mark a direct relationship

 
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title></title>
<style type="text/css">
html>body #navsite ul li a { 
 width: auto; 
}
</style>
</head>
<body>
  <div id="navsite">
   <p>Site navigation:</p>
   <ul>
    <li><a href="">Home</a></li>
    <li><a href="">About</a></li> 
    <li><a href="">Archives</a></li>
    <li><a href="">Writing</a></li>
    <li><a href="">Speaking</a></li>
    <li><a href="">Contact</a></li>
   </ul>
  </div>
</body>
</html>