Что означает «тело> *» в CSS? - PullRequest
       14

Что означает «тело> *» в CSS?

14 голосов
/ 02 февраля 2010

Я пытаюсь понять эффекты CSS, которые реализует jQTouch. http://www.jqtouch.com/

У него есть некоторые определения CSS, которые содержат синтаксис, такой как body > *

body > * {
    -webkit-backface-visibility: hidden;
    -webkit-box-sizing: border-box;
    display: none;
    position: absolute;
    left: 0;
    width: 100%;
    -webkit-transform: translate3d(0,0,0) rotate(0) scale(1);
    min-height: 420px !important;
}
body.fullscreen > * {
    min-height: 460px !important;
}
body.fullscreen.black-translucent > * {
    min-height: 480px !important;
}
body.landscape > * {
    min-height: 320px;
}
body > .current {
    display: block !important;
}

Я уже некоторое время искал, но не могу найти подсказки. Может ли кто-нибудь объяснить мне это?

Это подразумевает анимацию?

Ответы [ 6 ]

16 голосов
/ 02 февраля 2010

body > * означает «любой прямой потомок тега body», например рассмотрим следующий сценарий

<body>
    <h1>This will be affected by body > *</h1>
    <div>
        This also
        <p>This will not be affected, because it is not a direct child</p>
    </div>
</body>
9 голосов
/ 02 февраля 2010

> означает, что будет затронут только следующий * (что угодно), который является НЕМЕДЛЕННЫМ дочерним элементом body.

Итак, body > * в основном означает каждого непосредственного потомка тега body. body * означает все теги внутри тега body, независимо от уровня.

4 голосов
/ 02 февраля 2010

Символ> - это индикатор совпадения, а * - это обозначенное совпадение.

Итак

body > * 

означает совпадение с любым потомком тела.

http://www.w3.org/TR/CSS2/selector.html

1 голос
/ 02 февраля 2010

* является селектором с подстановочными знаками и просто соответствует всем элементам, поэтому body > * будет соответствовать всем прямым потомкам элемента body.

0 голосов
/ 02 февраля 2010

* относится ко всем элементам, а > означает непосредственные дочерние элементы, поэтому body > * означает все непосредственные дочерние элементы тела.

Вероятно, это какой-то хак для ссылки на конкретный браузер, хотя я не знаком с ним.

0 голосов
/ 02 февраля 2010

body > * означает «любой элемент, который является прямым потомком элемента body».

Сравните это с body *, что означает "любой элемент, являющийся потомком элемента body". Так что это также будет соответствовать элементу <a> в <body><p><a>...</a></p></body>, например.

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