cssでパーセンテージとピクセルを組み合わせる方法はありますか? たとえば、div の幅を 50% + 10px にしたいとします。
Javascript / Jquery プラグインは許容可能なソリューションです。ただし、グローバルに機能し、追加のブロック用に追加のコードを記述する必要がないもの。
cssでパーセンテージとピクセルを組み合わせる方法はありますか? たとえば、div の幅を 50% + 10px にしたいとします。
Javascript / Jquery プラグインは許容可能なソリューションです。ただし、グローバルに機能し、追加のブロック用に追加のコードを記述する必要がないもの。
これはCSSの「難しい」問題であり、最近修正されたばかりです。CSSでの修正は、calc
ここでデモされているように、メソッドを使用することです。
http://dabblet.com/gist/3966215
dabbletはベンダープレフィックスを自動的に追加するため、次を使用する必要があることに注意してください。
-webkit-calc()
-moz-calc()
-ms-calc()
-o-calc()
calc()
ブラウザのサポートはOKです。http : //caniuse.com/#search=calc-要するに、IE9以降であり、Operaではありません。
私の知る限り、これを古いブラウザで機能させるためのポリフィルはJSにはありません。
div { width: calc(50% + 10px); }
IE9より前では機能しません。
それが役立つことを願っています
CSS
#testWrapper {
width: 500px;
background-color: #aaa;
}
.test {
width: 50%;
background-color: #ccc;
}
JS
$(function(){
window.calcWidth = function(el, property, data){
$(el).css(property, data);
alert($(el).width());
}
calcWidth('.test', 'width', '+=50px');
});
HTML
<div id="testWrapper">
<div class="test">
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Proin lacus urna, congue eu cursus nec, aliquet non lorem. Sed ullamcorper tempus enim, a vulputate dui suscipit vulputate.
</div>
</div>
jsfiddle.net :)
しかし、正直なところ、他の人が示したCSSの方法を使用します。クロスブラウザにするのに役立つjQueryプラグインは間違いなくいくつかあります...
また、サイズ変更時にバインドすることもできますが、それも良い方法ではありません