Autor Zpráva
Carduus
Profil *
Ahoj,

už dlouho se setkávám s problémem, že mi některé elementy samovolně zalomí řádek, což nechci.
Řešením může být třeba css position, ale to se moc nehodím na webové stránky (v tomto případě)

Je nějaké jednoduché řešení, jak jakékoliv elementy zachovat v jedné řádce bez složitých výpočtů v pixelech?

Myslel jsem si, že stačí všechny elementy dát do divu (nebo spanu?), ale to nefunguje.

Díky
Johny94
Profil
Je to tím že jsou to blokové tagy (http://www.jakpsatweb.cz/html/bloky.html). Řádkové z nich uděláš pomocí display: inline;.
Carduus
Profil *
Taková jednoduchá věc! Díky

To mi ale vyruší atributy height a width že jo?

Takže budu muset stejně použít nějak absolutní pozici nebo to udělat nějak jinak? :(
Bubák
Profil
Nech to plavat, to je nejčastější řešení:
float: left;

Po floatu nezapomeň na clear. Jak funguje „float“ a „clear“
Carduus
Profil *
Tohle funguje úžasně!

Po pravdě řečeno, dost v těch divech spanech a floatech plavu. Každopádně alespoň trochu jsem to pochopil.

Díky
Carduus
Profil *
A mohl bych prosím poprosit ještě o jednu věc? Mám stránky : http://www.michprev.wz.cz V menu (prostřední tlačítko) :

- v IE vůbec nefunguje
- v chrome se mi ukazuje i <li>

Lépe to asi pochopíte z kodu :

HTML :
<div width="70%" class="lista"><div class="posun">Úvod</div></div>
      <div class="menu">
      <li><a><div class="lista"><div class="posun">Začátky</div></div></a>
      <ul>
      <li class="obsah"><a>Začátky</a></li>
      <li class="obsah"><a>Počítání</a></li>
      <li class="obsah"><a>Komentáře</a></li>
      <li class="obsah"><a>Print</a></li>
      <li class="obsah"><a>Proměnné</a></li>
      </ul>
      </li>
      </div>


CSS :

div.lista {
  background-color: #6ab7f3;
  text-align:center;
  cursor:pointer;
  width:32%;
  height:10%;
  font-size:50px;
  border:8px outset #12a4aa;
  float:left;
  }
  
div.lista:hover {
  border-style:inset;
}
  
div.posun {
  position:relative;
  top:20%;
}

.menu li.obsah {text-align:center; list-style-type:none; float:auto; border:8px outset #12a4aa; cursor:pointer; background-color: #6ab7f3;}
.menu li:hover {border-style:inset;}
.menu li:hover ul{display:block}
.menu ul{display:none; width:32%; position:absolute; top:17%; height:8%; left:31%; list-style-type:none;}
.menu a {color: black; font-size:20px;}

#last:lista {
  position:absolute;
  right:5px;
}

.menu li {
behavior: url(hover.htc);}
Ulikar
Profil *
K čemu tam máš to
.menu li:hover ul{display:block}
Carduus
Profil *
Chybka se vloudila.
Každopádně to neřeší můj problém :(
hexcross..
Profil *
Carduus:
Máš celou špatnou strukturu toho menu, třeba toto
<li><a><div class="lista"><div class="posun">Začátky</div></div></a>
by šlo zjednodušit na
 <li><a href="#">Začátky</a></li>


Nebudu ti psát jak to máš špatně ale zkus strukturu tvýho menu udělat takto :
<ul>
<li><a href="#>První úroven - vysouvací menu</a>
  <ul>
  <li><a href="#">Odkaz první úrovně</a></li>
  <li><a href="#">Odkaz první úrovně</a></li>
  <li><a href="#">Odkaz první úrovně</a></li>
  </ul>
</li>
<li><a href="#>První úroven - normalní odkaz</a></li>
<li><a href="#>První úroven - normalní odkaz</a></li>
</ul>
cherryboss
Profil *
Nedávno jsem objevil, že pro css atribut display existuje hodnota inline-block
To nezalomí řádek (chová se jako inline) ale také zachová nastavení výšky a šířky (chování block)
Zatím mi to fungovalo vždy a všude :)
whysper93
Profil
http://www.jakpsatweb.cz/css/display.html - tady je psáno o tom inline-block.

tady také: http://www.quirksmode.org/css/display.html
Taurus
Profil
"Zatím" je zrádné, viz IE asi nebere height divu a display: inline-block a http://www.quirksmode.org/css/display.html (viz IE6 a 7).

Vaše odpověď


Prosím používejte diakritiku a interpunkci.

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

0