Saya tahu ada hr (aturan horizontal) dalam html, tapi saya tidak percaya ada vr (aturan vertikal). Apakah saya salah dan jika tidak, mengapa tidak ada aturan vertikal?
Ini adalah pertanyaan yang sudah mati, tetapi dengan spec CSS3 sekarang keluar, Anda dapat menggunakan transform: rotate (90deg) untuk membuat aturan vertikal dan horizontal.
Jules
3
Jika Anda menggunakan flexbox sebagai baris (tampilan: flex; direction-direction: row;) hrakan otomatis menjadi vertikal. Anda hanya perlu mengatur heightpropertinya (mis. Tinggi: 80%;).
Rodrigo
Jawaban:
156
Tidak, tidak ada aturan vertikal.
Tidak masuk akal untuk memilikinya. HTML diuraikan secara berurutan, artinya Anda mengeluarkan kode HTML Anda dari atas ke bawah, dari kiri ke kanan seperti yang Anda inginkan muncul dari atas ke bawah, kiri ke kanan (umumnya)
Tabel dapat memisahkan item secara vertikal, jadi apa yang Anda katakan bukan alasan sebenarnya tidak ada tag vr.
CiscoIPPhone
6
Itu bukan alasan tabel ditambahkan ke spesifikasi HTML. Tabel adalah untuk menampilkan data tabulasi. Hampir semua elemen HTML dapat digunakan untuk memisahkan item secara vertikal (apa pun yang Anda atur untuk ditampilkan: blok dan float: dibiarkan dengan set ketinggian apa pun)
Andy Baird
19
erf. Saya mencoba mengatakan bahwa jika hal-hal sudah dapat dipisahkan secara vertikal maka bagaimana menambahkan vr tidak mengikuti paradigma HTML?
CiscoIPPhone
4
@CiscoIPPhone - Pemisahan vertikal akan membutuhkan aturan horizontal. Pemisahan lateral akan membutuhkan aturan vertikal. Ergo, Andy Baird benar, saya pikir.
Joshua
3
Saya tidak setuju bahwa itu tidak mengikuti paradigma. Seperti yang Anda katakan itu diuraikan secara berurutan, atas ke bawah, kiri ke kanan. Anda dapat membagi konten yang bergerak dari kiri ke kanan dengan aturan vertikal. Pada hari-hari awal HTML saya setuju itu tidak masuk akal. Sekarang aturan vertikal adalah hal yang sering digunakan dalam html, meskipun tidak ada tag semantik yang benar untuk itu. Hanya dua sen saya.
Hendeca
37
Anda dapat membuat aturan vertikal seperti ini: <hr style="width: 1px; height: 20px; display: inline-block;">
Seperti yang ditunjukkan oleh yang lain, konsep aturan vertikal tidak cocok dengan ide asli di balik struktur dan penyajian dokumen HTML. Namun, akhir-akhir ini (terutama dengan semakin banyaknya aplikasi web) ada sejumlah kecil skenario di mana ini memang akan berguna.
Sebagai contoh, pertimbangkan menu navigasi horisontal tetap di bagian atas layar, mirip dengan menu-bar di sebagian besar aplikasi GUI berjendela. Anda memiliki beberapa item menu tingkat atas yang disusun dari kiri ke kanan yang ketika diklik membuka menu drop-down. Bertahun-tahun yang lalu, itu adalah praktik umum untuk membuat ini dengan tabel baris tunggal, tetapi ini adalah HTML yang buruk dan secara luas diakui bahwa cara yang benar untuk pergi adalah daftar dengan CSS yang sangat disesuaikan.
Sekarang, katakan Anda ingin mengelompokkan item yang serupa, tetapi tambahkan pemisah vertikal di antara grup, untuk mencapai sesuatu seperti ini:
[Item1a][Item1b]|[Item2a][Item2b]
Menggunakan <hr style="width: 1px; height: 100%; ..." />karya, tetapi secara semantik mungkin dianggap salah karena Anda mengubah untuk apa elemen itu sebenarnya. Selain itu, Anda tidak dapat menggunakan ini dalam elemen tertentu di mana HTML DTD hanya mengizinkan elemen inline-level (misalnya dalam suatu <span>elemen).
Pilihan yang lebih baik adalah <span style="display: inline-block; width:1px; height:100%; background:#000; margin: 0 2px;"></span>, namun tidak semua browser mendukung display: inline-block;properti CSS, jadi satu-satunya opsi inline-level nyata adalah menggunakan gambar seperti:
Ini memiliki keuntungan tambahan karena kompatibel dengan browser hanya teks (seperti lynx) karena karakter pipa ditampilkan daripada gambar. (Ini masih mengganggu saya bahwa M $ IE salah menggunakan teks alt sebagai tooltip; itulah judul atribut untuk!)
Itu poin yang bagus. Namun, itu berarti merender halaman dengan cara yang tidak konvensional karena Anda harus bersaing dengan semua elemen lain di dom. Pernahkah Anda memperhatikan bahwa kadang-kadang ada perbedaan render antara browser? ;) ~ Meskipun begitu, poin yang sangat bagus .
jcolebrand
7
Sebuah <hr> di dalam layar: flex akan membuatnya ditampilkan secara vertikal.
Pertanyaan kuno tapi saya menyelesaikan ini dengan display:flex;dan itu bekerja dengan baik:
<divstyle="display:flex;border:1px dotted black;margin-bottom:20px;"><div>
This is a div
</div><divstyle="border-left:1px solid black;margin:07.5px;"></div><div>
This is another div
</div></div>
Saya tahu saya menambahkan jawaban saya sangat terlambat, tetapi saya yakin itu layak dilakukan. Anda dapat mencapai garis vertikal menggunakan flexdanhr
Dalam konteks item daftar yang digunakan sebagai navigasi, tag <vr /> akan sangat berguna. Alasan itu tidak ada adalah karena "Tidak masuk akal untuk memilikinya" dalam konteks HTML satu dekade lalu.
Untuk digunakan dalam email HTML untuk sebagian besar klien desktop, Anda harus menggunakan tabel. Dalam hal ini, Anda dapat menggunakan <hr>tag, dengan penataan inline yang diperlukan (tetapi sederhana), seperti:
<hrwidth="1"size="50">
Tentu saja penataan dengan CSS lebih fleksibel, tetapi GMail dan sejenisnya tidak mengizinkan penggunaan penataan CSS apa pun selain inline ...
* Anda mungkin perlu bermain-main sedikit display:inline-block|inlinekarena inlinetidak akan berkembang hingga mengandung tinggi elemen. Gunakan margin untuk menempatkan garis di tengah wadah.
<html><head><style>
vr {display: inline-block;// This is where you'd set the ruler color
background-color: black;// This is where you'd set the ruler width
width:2px;//this is where you'd set the spacing between the ruler and surrounding text
margin:0px5px0px5px;height:100%;vertical-align: top;}</style></head><body>
this is text <vr></vr> more text
</body></html>
(Jika ada yang tahu cara saya bisa mengubahnya menjadi tag "terbuka", seperti <hr>beri tahu saya dan saya akan mengeditnya)
Saya merasa mudah untuk membuat gambar garis , dan kemudian memasukkannya ke dalam kode sebagai "aturan", mengatur lebar dan / atau tinggi sesuai kebutuhan. Ini semua adalah gambar aturan horizontal, tetapi tidak ada yang menghentikan saya (atau Anda) menggunakan gambar "aturan vertikal".
Ini keren karena berbagai alasan; Anda dapat menggunakan garis, warna, atau pola yang berbeda dengan mudah sebagai "aturan", dan karena mereka tidak memiliki teks, bahkan jika Anda melakukannya dengan cara "normal" menggunakan jam dalam HTML, seharusnya tidak memengaruhi SEO atau hal lain seperti bahwa. Dan file gambar akan / harus sangat kecil (paling banyak 1 atau 2KB).
Anda harus memasukkan kode sampel untuk menunjukkan teknik yang Anda sarankan.
Adam Katz
0
Terlalu banyak jawaban yang terlalu rumit. Buat saja tag TableData yang merentang berapa banyak baris yang Anda inginkan menggunakan rowspan. Kemudian gunakan batas kanan untuk bilah sebenarnya.
Karena orang tidak berpikir tabel harus digunakan untuk ini (saya tidak downvote).
erikkallen
-2
Tidak, tidak ada. Dan saya akan menceritakan sedikit tentang mengapa hal itu tidak terjadi. Tapi pertama-tama,
solusi cepat:
a) Gunakan kelas CSS untuk elemen dasar span/ div, misalnya <span class="vr"></span>::
.vr{
display:inline-block;
vertical-align: middle;/* note that height must be precise, 100% does not work in some major browsers */
height:100px;
width:1px;
background-color:#000;}
b) Manfaatkan perbatasan satu sisi saja dan mungkin :first-childpemilih CSS jika Anda ingin menerapkan pembagi umum di antara elemen saudara / tetangga.
Kisah tentang <vr>FITTING dalam paradigma asli, tetapi masih belum ada:
Banyak jawaban di sini menyarankan, bahwa pembagi vertikal tidak sesuai dengan paradigma / pendekatan HTML asli ... yang sepenuhnya salah.Juga jawabannya sangat bertentangan dengan diri mereka sendiri.
Orang-orang yang sama itu mungkin menyebut kelas CSS mereka yang jelas "clearfix" - tidak ada yang bisa diperbaiki tentang mengambang, Anda hanya membersihkannya ... Bahkan ada elemen di HTML3: <clear> . Sayangnya, ini dan pembersihan mengambang adalah salah satu dari beberapa kesalahpahaman umum.
Bagaimanapun. "Saat itu" di "usia HTML asli", tidak ada pemikiran tentang sesuatu seperti inline-block, hanya ada blocks, inlinesdantables .
Yang terakhir sebenarnya adalah alasan mengapa <vr>tidak ada.
Saat itu diasumsikan bahwa: Jika Anda ingin membagi sesuatu secara vertikal dan / atau membuat lebih banyak blok dari kiri ke kanan =>
=> Anda membuat / ingin membuat kolom =>
=> yang menyiratkan Anda membuat tabel =>
= > tabel memiliki batas alami antara sel mereka => tidak ada alasan untuk membuat<vr>
Pendekatan ini sebenarnya masih valid, tetapi seperti yang ditunjukkan oleh waktu, sintaks yang dibuat untuk tabel tidak cocok untuk setiap kasus dan juga gaya defaultnya.
Asumsi lain, mungkin nanti, adalah bahwa jika Anda tidak membuat tabel, Anda mungkin elemen blok mengambang . Itu berarti mereka menempel bersama-sama , dan sekali lagi, Anda dapat mengatur perbatasan , dan hari-hari bahkan mungkin menggunakan :first-childpemilih saya sarankan di atas ...
hr
akan otomatis menjadi vertikal. Anda hanya perlu mengaturheight
propertinya (mis. Tinggi: 80%;).Jawaban:
Tidak, tidak ada aturan vertikal.
Tidak masuk akal untuk memilikinya. HTML diuraikan secara berurutan, artinya Anda mengeluarkan kode HTML Anda dari atas ke bawah, dari kiri ke kanan seperti yang Anda inginkan muncul dari atas ke bawah, kiri ke kanan (umumnya)
Tag vr tidak mengikuti paradigma itu.
Ini mudah dilakukan dengan menggunakan CSS. Ex:
Perhatikan bahwa Anda perlu menentukan ketinggian atau mengisi wadah dengan konten.
sumber
Anda dapat membuat aturan vertikal seperti ini:
<hr style="width: 1px; height: 20px; display: inline-block;">
sumber
Seperti yang ditunjukkan oleh yang lain, konsep aturan vertikal tidak cocok dengan ide asli di balik struktur dan penyajian dokumen HTML. Namun, akhir-akhir ini (terutama dengan semakin banyaknya aplikasi web) ada sejumlah kecil skenario di mana ini memang akan berguna.
Sebagai contoh, pertimbangkan menu navigasi horisontal tetap di bagian atas layar, mirip dengan menu-bar di sebagian besar aplikasi GUI berjendela. Anda memiliki beberapa item menu tingkat atas yang disusun dari kiri ke kanan yang ketika diklik membuka menu drop-down. Bertahun-tahun yang lalu, itu adalah praktik umum untuk membuat ini dengan tabel baris tunggal, tetapi ini adalah HTML yang buruk dan secara luas diakui bahwa cara yang benar untuk pergi adalah daftar dengan CSS yang sangat disesuaikan.
Sekarang, katakan Anda ingin mengelompokkan item yang serupa, tetapi tambahkan pemisah vertikal di antara grup, untuk mencapai sesuatu seperti ini:
Menggunakan
<hr style="width: 1px; height: 100%; ..." />
karya, tetapi secara semantik mungkin dianggap salah karena Anda mengubah untuk apa elemen itu sebenarnya. Selain itu, Anda tidak dapat menggunakan ini dalam elemen tertentu di mana HTML DTD hanya mengizinkan elemen inline-level (misalnya dalam suatu<span>
elemen).Pilihan yang lebih baik adalah
<span style="display: inline-block; width:1px; height:100%; background:#000; margin: 0 2px;"></span>
, namun tidak semua browser mendukungdisplay: inline-block;
properti CSS, jadi satu-satunya opsi inline-level nyata adalah menggunakan gambar seperti:<img src="pixel.gif" alt="|" style="width:1px; height:100%; background:#000; margin: 0 2px;" />
Ini memiliki keuntungan tambahan karena kompatibel dengan browser hanya teks (seperti lynx) karena karakter pipa ditampilkan daripada gambar. (Ini masih mengganggu saya bahwa M $ IE salah menggunakan teks alt sebagai tooltip; itulah judul atribut untuk!)
sumber
Cobalah.
sumber
Bagaimana tentang:
Di mana top-> bawah, kanan-> kiri?
Kami akan membutuhkan aturan vertikal untuk ini.
sumber
Sebuah <hr> di dalam layar: flex akan membuatnya ditampilkan secara vertikal.
JSFiddle: https://jsfiddle.net/w6y5t1kL/
Contoh:
sumber
Tidak ada, kemana perginya?
Gunakan CSS untuk meletakkan batas-kanan pada elemen jika Anda menginginkan sesuatu seperti itu.
sumber
HTML memiliki sedikit atau tidak ada posisi vertikal karena sifat tipografi tata letak konten. Aturan Vertikal tidak sesuai dengan semantiknya.
sumber
Cobalah dan Anda akan tahu sendiri:
sumber
Anda bisa melakukannya dengan 2 cara:
sumber
Pertanyaan kuno tapi saya menyelesaikan ini dengan
display:flex;
dan itu bekerja dengan baik:https://jsfiddle.net/6qfd59vm/3/
Solusi ini juga tidak memerlukan ketinggian tetap.
sumber
Coba ini.
Anda dapat mengatur tinggi dan lebar pada " div ", seperti ruang lingkup untuk " jam ".
Margin " hr " digunakan untuk menyelaraskan.
sumber
Saya tahu saya menambahkan jawaban saya sangat terlambat, tetapi saya yakin itu layak dilakukan. Anda dapat mencapai garis vertikal menggunakan
flex
danhr
Lihat codepen saya di sini .
sumber
Dalam konteks item daftar yang digunakan sebagai navigasi, tag <vr /> akan sangat berguna. Alasan itu tidak ada adalah karena "Tidak masuk akal untuk memilikinya" dalam konteks HTML satu dekade lalu.
sumber
Untuk digunakan dalam email HTML untuk sebagian besar klien desktop, Anda harus menggunakan tabel. Dalam hal ini, Anda dapat menggunakan
<hr>
tag, dengan penataan inline yang diperlukan (tetapi sederhana), seperti:Tentu saja penataan dengan CSS lebih fleksibel, tetapi GMail dan sejenisnya tidak mengizinkan penggunaan penataan CSS apa pun selain inline ...
sumber
Anda dapat menggunakan css untuk mensimulasikan garis vertikal, dan menggunakan kelas pada div tersebut
sumber
Anda dapat melakukannya dengan sangat mudah
sumber
Elemen khusus HTML5 (atau CSS murni)
1. javascript
Daftarkan elemen Anda.
* Ini
-
wajib di semua elemen khusus.2. css
* Anda mungkin perlu bermain-main sedikit
display:inline-block|inline
karenainline
tidak akan berkembang hingga mengandung tinggi elemen. Gunakan margin untuk menempatkan garis di tengah wadah.3. instantiate
* Sayangnya Anda tidak dapat membuat tag kustom sendiri.
pemakaian
contoh: http://html5.qry.me/vertical-rule
Tidak ingin dipusingkan dengan javascript?
Cukup terapkan kelas CSS ini ke elemen yang Anda tuju.
css
* Lihat catatan di atas.
tautan ke jawaban asli pada SO .
sumber
Anda dapat membuat tag khusus seperti itu:
(Jika ada yang tahu cara saya bisa mengubahnya menjadi tag "terbuka", seperti
<hr>
beri tahu saya dan saya akan mengeditnya)sumber
<vr />
Tidak ada tag dalam HTML, tetapi Anda dapat menggunakan |.
sumber
Anda dapat menggunakan tag HTML5 SVG baru:
sumber
Saya merasa mudah untuk membuat gambar garis , dan kemudian memasukkannya ke dalam kode sebagai "aturan", mengatur lebar dan / atau tinggi sesuai kebutuhan. Ini semua adalah gambar aturan horizontal, tetapi tidak ada yang menghentikan saya (atau Anda) menggunakan gambar "aturan vertikal".
Ini keren karena berbagai alasan; Anda dapat menggunakan garis, warna, atau pola yang berbeda dengan mudah sebagai "aturan", dan karena mereka tidak memiliki teks, bahkan jika Anda melakukannya dengan cara "normal" menggunakan jam dalam HTML, seharusnya tidak memengaruhi SEO atau hal lain seperti bahwa. Dan file gambar akan / harus sangat kecil (paling banyak 1 atau 2KB).
sumber
Terlalu banyak jawaban yang terlalu rumit. Buat saja tag TableData yang merentang berapa banyak baris yang Anda inginkan menggunakan rowspan. Kemudian gunakan batas kanan untuk bilah sebenarnya.
Contoh:
Pastikan "& nbsp" di baris kedua menjalankan jumlah baris yang sama dengan yang pertama. sehingga ada jarak yang tepat di antara keduanya.
Teknik ini telah membantu saya lebih baik dengan waktu saya di HTML5.
sumber
Hari ini mungkin dengan
CSS3
sumber
Untuk orang yang mencoba membuat kolom untuk teks, ada properti aturan kolom yang harus Anda pertimbangkan untuk digunakan!
sumber
Mudah dapat dilakukan menggunakan div seperti ini
sumber
Tidak ada.
Mengapa? Mungkin karena tabel dengan dua kolom akan dilakukan.
sumber
Tidak, tidak ada. Dan saya akan menceritakan sedikit tentang mengapa hal itu tidak terjadi. Tapi pertama-tama, solusi cepat:
a) Gunakan kelas CSS untuk elemen dasar
span
/div
, misalnya<span class="vr"></span>
::Demonstrasi penggunaan => https://jsfiddle.net/fe3tasa0/
b) Manfaatkan perbatasan satu sisi saja dan mungkin
:first-child
pemilih CSS jika Anda ingin menerapkan pembagi umum di antara elemen saudara / tetangga.Kisah tentang
<vr>
FITTING dalam paradigma asli,tetapi masih belum ada:
Banyak jawaban di sini menyarankan, bahwa pembagi vertikal tidak sesuai dengan paradigma / pendekatan HTML asli ... yang sepenuhnya salah. Juga jawabannya sangat bertentangan dengan diri mereka sendiri.
Orang-orang yang sama itu mungkin menyebut kelas CSS mereka yang jelas "clearfix" - tidak ada yang bisa diperbaiki tentang mengambang, Anda hanya membersihkannya ... Bahkan ada elemen di HTML3:
<clear>
. Sayangnya, ini dan pembersihan mengambang adalah salah satu dari beberapa kesalahpahaman umum.Bagaimanapun. "Saat itu" di "usia HTML asli", tidak ada pemikiran tentang sesuatu seperti
inline-block
, hanya adablocks
,inlines
dantables
.Yang terakhir sebenarnya adalah alasan mengapa
<vr>
tidak ada.Saat itu diasumsikan bahwa:
Jika Anda ingin membagi sesuatu secara vertikal dan / atau membuat lebih banyak blok dari kiri ke kanan =>
=> Anda membuat / ingin membuat kolom =>
=> yang menyiratkan Anda membuat tabel =>
= > tabel memiliki batas alami antara sel mereka => tidak ada alasan untuk membuat
<vr>
Pendekatan ini sebenarnya masih valid, tetapi seperti yang ditunjukkan oleh waktu, sintaks yang dibuat untuk tabel tidak cocok untuk setiap kasus dan juga gaya defaultnya.
Asumsi lain, mungkin nanti, adalah bahwa jika Anda tidak membuat tabel, Anda mungkin elemen blok mengambang . Itu berarti mereka menempel bersama-sama , dan sekali lagi, Anda dapat mengatur perbatasan , dan hari-hari bahkan mungkin menggunakan
:first-child
pemilih saya sarankan di atas ...sumber