Autor Zpráva
Mati
Profil
Vytvořil jsem si jednoduché menu pomocí seznamu ul. Ale abych mohl použít vlastnost background-color na div, který mi obaluje menu, potřeboval jsem vložit něco, co může mít vlastnost clear:both. Vytvořil jsem div pomocny, který vkládám za seznam. Tohle řešení se mi nelíbí, protože je to něco, co je tam navíc.

Teď jsem narazil na vlastnost content, která spolu s pseudotřídou umožňuje vkládat text, ale z toho co o tom píše Yuhů mi není jasné, jestli to je vhodné použít.

Tady je ukázka, kde jsou obě varianty. Mohli by jste mi poradit, zda to bude fungovat ve většině prohlížečů a nebo existuje nějaký lepší způsob, který jsem ještě neobjevil?

<!doctype html>
<html>
<head>
<style>
.pomocny {clear:both;}  
.menu{background-color: gray;}
.mainmenu1,.mainmenu2 {width: 100%;}
.mainmenu1 ul li, .mainmenu2 ul li  {float: left;  margin: 1em; display: block; }
.mainmenu2 ul:after { clear:both; display: block;  content: ' '; }
</style>
</head>
<body>
<h1>Varianta I</h1> 
  <div class=menu>
      <div class="mainmenu1">
        <ul>
          <li><a href="" >Položka 1</a></li>
          <li><a href="" >Položka 2</a></li>
          <li><a href="" >Položka 3</a></li>
        </ul>
        <div class="pomocny"> </div>
      </div> 
  </div>
<h1>Varianta II</h1> 
  <div class=menu>
      <div class="mainmenu2">
        <ul >
          <li><a href="" >Položka 1</a></li>
          <li><a href="" >Položka 2</a></li>
          <li><a href="" >Položka 3</a></li>
        </ul>
      </div> 
  </div>
</body>
</html>
Str4wberry
Profil
No, nebude to fungovat ve starších Explorerech než 8. Jinak clearovat bez pomocných elementů lze pomocí overflow: hidden.
peta
Profil
A co treba to prevest na inline?
<style>
.menu{background-color: gray;}
.menu ul, .menu li  {list-style-type:none; display:inline; margin:0; padding:0;}
.menu li  {margin: 1em;}
</style>
margin
Profil *
Mati:
nebo existuje nějaký lepší způsob, který jsem ještě neobjevil?
.menu ul {overflow: hidden;}

Tip mimo téma:
Možná to je jen kvůli ukázce, ale vhodnější je nedávat margin položkám menu (řádek 8), ale dát padding blokovým odkazům, plocha ke kliknutí je pak větší. Deklarovat položky menu jako blokové, nebo jim odebrat odrážky vyjde nastejno, ale u deklarace list-style: none; je každému zřejmé, co dělá.
.mainmenu1 ul li, .mainmenu2 ul li  {float: left;  list-style: none;}
.menu a {display: block; padding: 1em; background: #baf;}
Mati
Profil
Dík za rady, vyzkouším je. Jen úplně nechápu, jak přesně vlastnost overflow: hidden funguje. Nenapadlo by mi ji po přečtení její funkce použít.

Vaše odpověď


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: