Своеобразное обратное каскадирование в CSS - PullRequest
8 голосов
/ 09 февраля 2011

У меня есть ситуация, когда мой CSS применяет стили, которые не применяются к стилю объекта. Вот точный код из моего файла site.css ...

.rules aside {  
    width: 270px;  
    right: 0px; 
    top: 0px; 
    float: left;
}

.rules aside h3 { 
    border-bottom-width: 2px; 
    border-bottom-style: solid; 
    border-bottom-color: #2A2A2A; 

    padding-bottom: 6px; 
    padding-top: 11px; 

    margin-bottom: 0px; 

    color: #F0E29A; 
    font-size: 14px; 
    letter-spacing: -0.5px; 
    text-transform: uppercase; 
}

Теперь вот какой-то HTML-код, который его использует ...

<article class="content rules">
   <section>
   // ...
   </section>
   <aside>
     Some Content
   </aside>
</article>

А вот CSS-разметка, которую показывает Chrome's Inspector для элемента <aside>.

.rules aside {
border-bottom-width: 2px;
border-bottom-style: solid;
border-bottom-color: #2A2A2A;
padding-bottom: 6px;
padding-top: 11px;
margin-bottom: 0px;
color: #F0E29A;
font-size: 14px;
letter-spacing: -0.5px;
text-transform: uppercase;
width: 270px;
right: 0px;
top: 0px;
float: left;
}

Это не имеет никакого смысла. Только элемент <h3> должен быть стилизован из селектора .rules aside h3. Тем не менее, он постепенно падает в корневой элемент <aside>. У меня есть и другие случаи, когда это происходит. Это происходит в Google Chrome (последняя версия)

Включая скриншоты для доказательства. enter image description here enter image description here


Тридцать редактирования:

jsfiddle.net / 2hnLx - запуск этого точно такой же код из файла .html на моя машина дает результаты проблемы, но запуск его из jsFiddle дает ожидаемые результаты. - Стейси

Код из jsFiddle:

<!DOCTYPE html> 
<html xmlns="http://www.w3.org/1999/xhtml" > 
<head> 
    <title>jsFiddle Example</title> 
    <style type="text/css"> 
        article, section, aside, header, nav { display: block; }

        #container { 
            margin: 0px auto; 
            width: 960px; 
            position: relative;
        }
        section { 
            float: left;
            width: 685px; 
            left: 0px; 

            background-color: #ccc;
        }
        section h2 {
            padding: 10px;
        }
        section h3 { 
            font-size: 32px; 
            color: #ffcc00; 
            font-weight: bold; 
            padding: 10px; 
            border-bottom-width: 2px; 
            border-bottom-style: solid; 
            border-bottom-color: #2A2A2A; 
            margin-bottom: 18px; 
            margin-left: 10px;
            margin-right: 10px;
        }

        .rules aside {  
            width: 270px;  
            right: 0px; 
            top: 0px; 
            float: left;

            background-color: #000;
        }

        aside h3 { 
            border-bottom-width: 2px; 
            border-bottom-style: solid; 
            border-bottom-color: #2A2A2A; 

            padding-bottom: 6px; 
            padding-top: 11px; 

            margin-bottom: 0px; 

            color: #F0E29A; 
            font-size: 14px; 
            letter-spacing: -0.5px; 
            text-transform: uppercase; 

            background-color: #fff;
        }
    </style> 
</head> 
<body> 
    <div id="container"> 
        <article> 
            <section> 
                <p>Section Text</p> 
            </section> 
            <aside> 
                <p>Aside Text</p> 
            </aside> 
        </article> 
    </div> 
</body> 
</html> 

Ответы [ 2 ]

2 голосов
/ 09 февраля 2011

Решено.
Это была спецификация.Попробуйте сохранить файл site.css как UTF-8 без спецификации, и он будет работать.

Обновление
Это присуще: HTML и CSS-файлы UTF-8 сСпецификация (и как удалить спецификацию с помощью Python)

2 голосов
/ 09 февраля 2011

Я пробовал это в Chrome 9. Я не могу воспроизвести ошибку.Вот мой код (вы можете попробовать): http://dl.dropbox.com/u/20195191/StackOverflow/so_4945633.html

А это скриншот из Chrome.screenshot of css properties

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