2010-01-13 5 views
11

Come impostare il float corretto per ogni elemento all'interno di div?Come impostare float per ogni elemento all'interno di un div allo stesso tempo senza specificare il float per ogni elemento all'interno?

Voglio dare il float agli elementi interni solo non al DIV principale?

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> 
<head> 
<title>Sandbox</title> 
<meta http-equiv="Content-type" content="text/html; charset=utf-8" /> 
<style type="text/css" media="screen"> 
body { background-color: #000; font: 16px Helvetica, Arial; color: #fff; } 
div {border:2px solid red;height:50px} 
a {border:2px solid blue;margin:10px} 
</style> 
</head> 
<body> 

<div> 
<a>Hello from JS Bin</a> 
    <a>from JS Bin</a> 
    </div> 
</body> 
</html> 

risposta

14

È possibile indirizzare tutti i figli di un elemento mediante il selettore *, così nel tuo esempio, si potrebbe aggiungere:

div * { float: right; } 

Si noti che questo sarebbe galleggiare tutti i bambini ed i loro bambini, quindi se si aveva contenuto nidificato probabilmente non è ciò che si vuole, in questo caso probabilmente si desidera:

div > * { float: right; } 

Tuttavia, il >direct descendant selector isn't supported in older versions of IE (e pos sibilmente altri browser?).

10

Sulla scia Alconja sotto è un buon modo per aggirare il problema di selezione discendente:

div *{ float: right; } 
div * *{ float: none; } 

Questa galleggia tutto a destra, poi i bambini di tutto ciò saranno ripristinate a nessuno.

+1

+1 Bel trucco, non ci avevo nemmeno pensato. – Alconja