Hitung persen dengan SCSS / SASS


121

Saya ingin mengatur lebar dalam persentase dalam scss melalui perhitungan, tetapi itu memberi saya kesalahan ..

CSS tidak valid setelah "...- width: (4/12)%": ekspresi yang diharapkan (misalnya 1px, bold), sebelumnya ";"

Saya ingin melakukan sesuatu seperti

$my_width: (4/12)%;

div{
width: $my_width;
}

bagaimana cara menambahkan% masuk di sana?

Pertanyaan yang sama dengan px dan em


1
Tidak ada yang bisa dimainkan. Saya hanya ingin menambahkan satuan angka ke kalkulasi. Sama seperti (400/20) px. Bagaimana saya memiliki angka dan px / em /% di scss? Dengan cara itu saya dapat memiliki "variabel global" yang dapat saya ubah sekali
Nick Ginanto

Coba tambahkan tanda kurung seperti $ my_width: ((4/12)%);
Sri

Ups .. Maaf, saya tidak sempat memeriksanya dan mencoba sekali lagi untuk melakukannya .. {$ my_width: (4/12)%;}
Sri

Jawaban:


211

Sudahkah Anda mencoba fungsi persentase ?

$my_width: percentage(4/12);
div{
width: $my_width;
}

1
apakah ada fungsi serupa untuk px dan em?
Nick Ginanto

1
Tidak yakin, tetapi di bagian sumber dokumentasi Anda dapat melihat logika yang mendasarinya: Sass :: Script :: Number.new (value.value * 100, ['%']), jadi menurut saya jika tidak ada Anda bisa melakukan ini secara langsung, atau membuat beberapa fungsi pembungkus sendiri.
Tomas

4
@NickGinanto untuk px Anda bisa menambahkannya +pxke akhir baris, misalnyawidth: ($foo + $bar) +px
DisgruntledGoat

2
@DisgruntledGoat Tidak, Anda tidak boleh melakukan itu dalam keadaan apa pun. Menambahkan unit harus dilakukan melalui perkalian (misalnya $foo + $bar * 1px), menggabungkan unit seperti itu hanya memberi Anda string.
cimmanon

@ cimmanon melakukan perubahan itu baru-baru ini? Saya yakin itu tidak terjadi ketika saya memposting komentar saya.
DisgruntledGoat

30

Cara lain:

$my_width: 4/12*100%;

div{
width: $my_width; // 33.33333%
}

Sass akan menampilkan nilai dalam%.


13
Perhatikan bahwa saya harus menggunakan 100/6 * 1% agar ini berfungsi untuk saya, atau saya berakhir dengan 1666,67%.
sp00n

di mana saya dapat menemukan dokumentasi yang sebenarnya * 100% lakukan?
Ini

1

Saya bisa membuatnya bekerja dengan cara ini:

div{
   width: (4/12)* 1%;
   }

Dengan cara ini Anda tidak perlu menggunakan fungsi khusus apa pun.

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.