2016-05-11 5 views
1

У меня есть SVG, который отображается inline <div className="app-details__icon-large" dangerouslySetInnerHTML={{__html: svg }} />. Он должен отображаться как таковой (не в теге img, или в фоновом режиме), чтобы я мог создавать определенные свойства в svg. Хотя я успешно стилю (с использованием селекторов CSS), которые не установлены в svg, я не могу установить высоту и ширину, потому что она переопределяется встроенными свойствами высоты/ширины. Итак, каков наилучший способ, учитывая svg с высотой/шириной, чтобы управлять высотой и шириной из CSS? Является ли это возможным? Или, если нет, что лучше всего подходит для изменения размера inline svgs?Динамический размер inline SVG

+1

Возможные дубликатом [Встраиваемый SVG в CSS] (http://stackoverflow.com/questions/10768451/inline-svg-in-css) –

+0

это может быть случай использования всегда ненавистного тега '! important', если вы не можете переопределить встроенный стиль для них с использованием специфики – jbutler483

+1

SVG будет иметь ширину и высоту, установленные в строке svg tag, удалите их, тогда простой CSS позволит вам настроить свойства ширины и высоты. – Aaron

ответ

3

Если вы встроили SVG, вам не нужен Javascript. Например, можно масштабировать до 48px 24px значок вроде этого:

<div class="Icon"> 
    <svg class="Icon-image" width="24" height="24" viewbox="0 0 24 24">...</svg> 
</div> 

CSS:

.Icon { 
    width: 48px; 
} 
.Icon svg { 
    width: 100%; 
    height: auto; 
} 
+0

Фантастический. Спасибо! – garrettmaring

+0

Ничего себе, я так много огляделся, чтобы найти решение для этого, и ваш был единственным, кто работал до сих пор на встроенном SVG. Спасибо. –

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