Trik ini berfungsi untuk batas horizontal dan vertikal:
/*Horizontal*/
background-image: linear-gradient(to right, black 33%, rgba(255,255,255,0) 0%);
background-position: bottom;
background-size: 3px 1px;
background-repeat: repeat-x;
/*Vertical*/
background-image: linear-gradient(black 33%, rgba(255,255,255,0) 0%);
background-position: right;
background-size: 1px 3px;
background-repeat: repeat-y;
Anda dapat menyesuaikan ukuran dengan ukuran latar belakang dan proporsi dengan persentase linear-gradien. Dalam contoh ini saya memiliki garis titik-titik titik 1px dan spasi 2px. Dengan cara ini Anda dapat memiliki beberapa batas bertitik juga menggunakan beberapa latar belakang.
Cobalah di JSFiddle ini atau lihat contoh cuplikan kode:
div {
padding: 10px 50px;
}
.dotted {
border-top: 1px #333 dotted;
}
.dotted-gradient {
background-image: linear-gradient(to right, #333 40%, rgba(255, 255, 255, 0) 20%);
background-position: top;
background-size: 3px 1px;
background-repeat: repeat-x;
}
.dotted-spaced {
background-image: linear-gradient(to right, #333 10%, rgba(255, 255, 255, 0) 0%);
background-position: top;
background-size: 10px 1px;
background-repeat: repeat-x;
}
.left {
float: left;
padding: 40px 10px;
background-color: #F0F0DA;
}
.left.dotted {
border-left: 1px #333 dotted;
border-top: none;
}
.left.dotted-gradient {
background-image: linear-gradient(to bottom, #333 40%, rgba(255, 255, 255, 0) 20%);
background-position: left;
background-size: 1px 3px;
background-repeat: repeat-y;
}
.left.dotted-spaced {
background-image: linear-gradient(to bottom, #333 10%, rgba(255, 255, 255, 0) 0%);
background-position: left;
background-size: 1px 10px;
background-repeat: repeat-y;
}
<div>no
<br>border</div>
<div class='dotted'>dotted
<br>border</div>
<div class='dotted-gradient'>dotted
<br>with gradient</div>
<div class='dotted-spaced'>dotted
<br>spaced</div>
<div class='left'>no
<br>border</div>
<div class='dotted left'>dotted
<br>border</div>
<div class='dotted-gradient left'>dotted
<br>with gradient</div>
<div class='dotted-spaced left'>dotted
<br>spaced</div>
Berikut adalah trik yang saya gunakan pada proyek baru-baru ini untuk mencapai hampir semua yang saya inginkan dengan batas horizontal. Saya menggunakan
<hr/>
setiap kali saya membutuhkan batas horisontal. Cara dasar untuk menambahkan perbatasan ke jam ini adalah sesuatu sepertiTetapi jika Anda ingin mengendalikan perbatasan dan, misalnya menambah, jarak antar titik, Anda dapat mencoba sesuatu seperti ini:
Dan berikut ini, Anda membuat perbatasan Anda (inilah contoh dengan titik-titik)
Ini juga berarti bahwa Anda dapat menambahkan bayangan teks ke titik, gradien, dll. Apa pun yang Anda inginkan ...
Yah, ini bekerja sangat bagus untuk batas horizontal. Jika Anda membutuhkan yang vertikal, Anda dapat menentukan kelas untuk jam lain dan menggunakan
rotation
properti CSS3 .sumber
Anda tidak dapat melakukannya dengan CSS murni - spec CSS3 bahkan memiliki kutipan spesifik tentang ini:
Anda bisa, bagaimanapun, menggunakan baik perbatasan-gambar atau gambar latar belakang yang melakukan trik.
sumber
border: dotted
, tetapi adalah mungkin untuk melakukannya menggunakan gradien sebagai jawaban Eagorajose telah menunjukkan.Ini menggunakan perbatasan CSS standar dan elemen pseudo + overflow: disembunyikan. Pada contoh Anda mendapatkan tiga garis putus-putus 2px berbeda: normal, spasi seperti 5px, spasi seperti 10px. Sebenarnya 10px dengan hanya 10-8 = 2px terlihat.
Diterapkan pada elemen kecil dengan sudut bulat besar dapat membuat beberapa efek menyenangkan.
sumber
Jadi, mulailah dengan jawaban yang diberikan dan terapkan fakta bahwa CSS3 memungkinkan beberapa pengaturan - kode di bawah ini berguna untuk membuat kotak lengkap:
Perlu dicatat bahwa 10px dalam ukuran latar belakang memberikan area yang akan ditutupi oleh dasbor dan celah. 50% dari tag latar belakang adalah seberapa lebar tanda hubung sebenarnya. Karena itu dimungkinkan untuk memiliki garis putus-putus yang berbeda di setiap sisi perbatasan.
sumber
Lihat dokumen MDN untuk nilai yang tersedia untuk
border-style
:Terlepas dari pilihan-pilihan itu, tidak ada cara untuk mempengaruhi gaya perbatasan standar.
Jika kemungkinan tidak sesuai dengan keinginan Anda, Anda dapat menggunakan CSS3
border-image
tetapi perhatikan bahwa dukungan browser untuk ini masih sangat jerawatan.sumber
Membangun solusi 4 edge berdasarkan jawaban @ Eagorajose dengan sintaks steno:
sumber
Ini adalah topik yang lama, tetapi masih sangat relevan. The arus atas jawabannya bekerja dengan baik, tapi hanya untuk titik-titik yang sangat kecil. Seperti yang telah ditunjukkan oleh Bhojendra Rauniyar dalam komentar, untuk titik yang lebih besar (> 2px), titik-titik tersebut tampak persegi, bukan bulat. Saya menemukan halaman ini mencari titik spasi , bukan kotak spasi (atau bahkan garis putus-putus, karena beberapa jawaban digunakan di sini).
Membangun ini, saya gunakan
radial-gradient
. Juga, menggunakan jawaban dari Ukuser32 , sifat-titik dapat dengan mudah diulang untuk keempat batas. Hanya sudut-sudutnya yang tidak sempurna.Yang
radial-gradient
diharapkan :Di sini, saya ingin sebuah titik 5 pixel diameter (2.5px radius), dengan 2 kali diameter (10px) antara titik-titik, menambahkan hingga 15px. The
background-size
harus sesuai ini.Kedua stop didefinisikan sedemikian rupa sehingga titiknya bagus dan halus: hitam pekat untuk setengah jari-jari dan daripada gradien ke jari-jari penuh.
sumber
Ini adalah pertanyaan yang sangat lama tetapi memiliki peringkat tinggi di Google jadi saya akan membahas metode saya yang dapat bekerja tergantung pada kebutuhan Anda.
Dalam kasus saya, saya ingin garis putus-putus tebal yang memiliki sedikit celah di antara garis putus-putus. Saya menggunakan generator pola CSS (seperti ini: http://www.patternify.com/ ) untuk membuat lebar 10px dengan pola tinggi 1px. 9px itu adalah warna garis putus-putus, 1px berwarna putih.
Di CSS saya, saya memasukkan pola itu sebagai gambar latar belakang, dan kemudian meningkatkannya dengan menggunakan atribut ukuran latar belakang. Saya berakhir dengan 20px oleh 2px dasbor berulang, 18px dari itu menjadi garis solid dan 2px putih. Anda bisa meningkatkannya untuk garis putus-putus yang sangat tebal.
Yang menyenangkan adalah karena gambar dikodekan sebagai data Anda tidak memiliki tambahan permintaan HTTP luar, jadi tidak ada beban kinerja. Saya menyimpan gambar saya sebagai variabel SASS sehingga saya dapat menggunakannya kembali di situs saya.
sumber
Jawaban singkat: Anda tidak bisa.
Anda harus menggunakan
border-image
properti dan beberapa gambar.sumber
Begitu banyak orang mengatakan "Kamu tidak bisa". Ya kamu bisa. Memang benar bahwa tidak ada aturan css untuk mengontrol ruang selokan di antara tanda hubung tetapi css memiliki kemampuan lain. Jangan terlalu cepat mengatakan bahwa suatu hal tidak dapat dilakukan.
Pada dasarnya tinggi batas atas (5px dalam kasus ini) adalah aturan yang menentukan selokan "lebar". Tentu saja Anda perlu menyesuaikan warna agar sesuai dengan kebutuhan Anda. Ini juga merupakan contoh kecil untuk garis horizontal, gunakan kiri dan kanan untuk membuat garis vertikal.
sumber
Saya membuat fungsi javascript untuk membuat titik dengan svg. Anda dapat menyesuaikan jarak dan ukuran titik dalam kode javascript.
sumber
JIKA Anda hanya menargetkan browser modern, DAN Anda dapat memiliki perbatasan pada elemen terpisah dari konten Anda, maka Anda dapat menggunakan transformasi skala CSS untuk mendapatkan titik atau garis yang lebih besar:
Diperlukan banyak penyesuaian posisi untuk membuatnya berbaris, tetapi berhasil. Dengan mengubah ketebalan batas, ukuran awal dan faktor skala, Anda dapat mencapai rasio ketebalan-panjang yang Anda inginkan. Satu-satunya hal yang tidak dapat Anda sentuh adalah rasio dash-to-gap.
sumber
scale(8)
inilah yang saya lakukan - gunakan gambar masukkan deskripsi gambar di sini
sumber
AFAIK tidak ada cara untuk melakukan ini. Anda bisa menggunakan garis batas putus-putus atau mungkin sedikit menambah lebar batas, tetapi hanya mendapatkan lebih banyak titik tidak mungkin dengan CSS.
sumber
Anda bisa membuat kanvas (via javascript) dan menggambar garis putus-putus di dalamnya. Di dalam kanvas Anda dapat mengontrol berapa lama tanda hubung dan ruang di antara akan.
sumber