2016-06-23 13 views
2

У меня есть этот HTML-код, и я хотел бы, чтобы скрыть текст «Ясно, Ветер: 2,4 км/ч, Влажность: 100%»Как скрыть элемент в div, кроме одного?

<div class="flxvrJtnbd theDayInfos"> 
    Cloudy<br> 
    Wind : 2.4 km/h<br> 
    Humidity : 100%<br> 
    <span class="dhpflXvrjt degrees coldDegrees"> 
     19°C         
    </span> 
</div> 

Мне просто нужно, чтобы показать степень.

я попробовал что-то вроде:

.theDayInfos:not(.degrees){ 
    display: none; 
} 

Это did'nt работы. Существуют ли другие способы достижения этого?

Благодарим за помощь!

ответ

3

Вы можете использовать размер шрифта

.flxvrJtnbd.theDayInfos { 
 
    font-size:0rem;/*very old browsers won't take it */ 
 
    } 
 
.dhpflXvrjt.degrees.coldDegrees { 
 
    font-size:1rem;/*very old browsers won't take it */ 
 
}
<div class="flxvrJtnbd theDayInfos"> 
 
    Cloudy<br> 
 
    Wind : 2.4 km/h<br> 
 
    Humidity : 100%<br> 
 
    <span class="dhpflXvrjt degrees coldDegrees"> 
 
     19°C         
 
    </span> 
 
</div>

+0

Это работает эстетически, но если кто-то обращается к странице с помощью устройства чтения с экрана или другого устройства доступа (или просто копирует/вставляет), они все равно будут видеть/выберите текст с помощью 'font-size: 0rem;' – Brian

+0

@Brian, да, значит, он должен быть скрыт для читателей screan? затем используйте также CSS, предназначенный для чтения с экрана (не часть qustion). https://www.w3.org/TR/css3-speech/#speaking-props-speak –

+0

кричит, вы правы. – Brian

3

вы можете только обернуть их каким-либо элементом и скрыть этот элемент.

+0

Действительно, в CSS невозможно вставлять текстовые узлы; вам всегда нужен оберточный элемент ... – feeela

+2

неправда ... http://stackoverflow.com/questions/37925394/css-hide-outer-span-and-show-inner-span/37925472#37925472 – DaniP

+0

Это неправда .. – Li357

0

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

как это.

.theDayInfos span:not(.degrees) { 
 
    display: none; 
 
}
<div class="flxvrJtnbd theDayInfos"> 
 
    <span>Cloudy<br></span> 
 
    <span>Wind : 2.4 km/h<br></span> 
 
    <span>Humidity : 100%<br></span> 
 
    <span class="dhpflXvrjt degrees coldDegrees"> 
 
     19°C         
 
    </span> 
 
</div>

0

Wrap текст, который вы хотите скрыть его в другой элемент:

<style> 
.theDayInfos *:not(.degrees){ 
    display: none; 
} 
</style> 

<div class="flxvrJtnbd theDayInfos"> 
    <div> 
     Cloudy<br> 
     Wind : 2.4 km/h<br> 
     Humidity : 100%<br> 
    </div> 
    <span class="dhpflXvrjt degrees coldDegrees"> 
     19°C         
    </span> 
</div> 
+0

span и div не должны быть sibbling, используйте тот или другой, чтобы иметь действительный HTML. '.flxvrJtnbd.theDayInfos> div {display: none;}' работает слишком для IE8 –

+0

@GCyrillus некоторый источник для поддержки этого? span и div не должны сиблироваться? – DaniP

+0

Используйте валидатор W3C, чтобы узнать и прочитать спецификацию на W3C (диапазон - это фразированное содержимое, которое может удерживать и стоять вдоль фразирования контента, div не является филирующим контентом). Это относится к самому встроенному элементу, но ссылки () могут быть использованы как обертка блочного элемента (в HTML5) или формулировка содержания, но ** не оба одновременно * * надеюсь, что я был ясен * :) –

Смежные вопросы