Как установить float для каждого элемента внутри div без указания float для каждого элемента внутри? - PullRequest
11 голосов
/ 13 января 2010

Как правильно установить float для каждого элемента внутри div?

Я хочу дать float внутренним элементам, а не родительскому DIV?

<!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>

Ответы [ 2 ]

14 голосов
/ 13 января 2010

Вы можете настроить таргетинг на все дочерние элементы элемента с помощью селектора *, поэтому в своем примере вы можете добавить:

div * { float: right; }

Обратите внимание, что это приведет к перемещению всех детей и их детей, поэтому, если у вас есть вложенный контент, это, вероятно, не то, что вы хотите, в этом случае вы, вероятно, хотите:

div > * { float: right; }

Однако селектор прямого потомка > не поддерживается в более старых версиях IE (и, возможно, в других браузерах?).

10 голосов
/ 13 января 2010

Следование Alconja ниже - хороший способ обойти проблему выбора потомков:

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

Это все будет плавать правильно, тогда дети всего будут сброшены в ноль.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...