text-decoration-inset seperti pengisi untuk dekorasi teks

 – Beragampengetahuan
4 mins read

text-decoration-inset seperti pengisi untuk dekorasi teks – Beragampengetahuan

ini text-decoration-inset Properti CSS memecahkan masalah yang telah ada sejak awal mula Web, di mana dekorasi teks seperti garis bawah melampaui karakter pertama dan terakhir (khususnya, hingga tepi kotak konten), menyebabkan ketidaksejajaran vertikal.

Tautan biru default memperbesar ruang antara garis bawah teks dan kotak pembatas, memperlihatkan garis bawah memanjang hingga ke kotak pembatas.

Saya katakan ini adalah masalah yang “kami” alami karena mungkin Anda, seperti beberapa pengguna, sebenarnya tidak peduli. Namun jika Anda adalah kelinci yang lucu seperti saya (menurut saya “desainer” adalah istilah teknis), kemungkinan besar hal itu akan membuat Anda gila.

Meskipun demikian, ini bukanlah masalah yang saya coba selesaikan karena jusnya tidak layak untuk diperas. Solusi terbaik mungkin text-decoration: none Dan ::after Memiliki latar belakang khusus, tapi itu mungkin agak rumit, saya lebih suka menggunakan semua fitur yang disertakan dengan dekorasi teks asli, misalnya. text-decoration-thickness, text-underline-position (Ini memungkinkan kita mengubah posisi garis bawah relatif terhadap metrik internal font; seperti garis dasar), dan text-underline-offset (Ini menentukan offset Itu Lokasi).

Jadi bagaimana text-decoration-inset Bekerja? Nah, jika saya memangkas garis bawah agar sejajar secara vertikal dengan teks, saya akan mendapatkan hasil seperti ini (btw, ini hanya berfungsi di Firefox 146):

Tautan biru default memperbesar ruang antara garis bawah teks dan kotak pembatas, menunjukkan bahwa garis bawah tidak meluas hingga ke kotak pembatas.

Namun, Anda sebenarnya dapat memangkas dekorasi sesuai kebutuhan, sehingga memungkinkan kami membuat beberapa dekorasi yang sangat keren dan bahkan mentransisikan atau menganimasikannya. Mari kita lihat sekilas, oke?

Contents

text-decoration-inset Penggunaan dasar

text-decoration-inset,sebelum text-decoration-trimmemungkinkan kita untuk memotong dari akhir garis bawah atau di tempat lain text-decoration-line dihitung. Ini sintaksnya:

text-decoration-inset: <left-inset> <right-inset>;

Ya, ini berarti kita dapat mengatur nilai sisipan yang berbeda untuk sisi kiri dan kanan.

Nilai-nilai ini harus ada <length>s, tapi kita bisa menggunakan panjang relatif, mis. em unit, relatif terhadap yang dihitung font-size. Jadi jika font-size Saat berubah, skala ilustrasinya pun disesuaikan. Misalnya pada demo di atas, 0.076em (ini yang saya tetapkan ilustrasi sebelah kiri) berarti 7,6% dari perhitungan font-sizeyaitu nilai yang menyelaraskan sisipan kiri dengan batang kiri huruf “N” dan batang kiri lainnya. Nilai ini ditentukan melalui trial and error, namun hanya perlu ditentukan satu kali untuk setiap font.

Bagaimana jika huruf pertama adalah W? Ya, kalau begitu ilustrasinya tidak akan sejalan, jadi tidak sempurna larutan. Menurut saya cocok jika Anda tahu apa isinya.

Mungkin W3C akan memberikan solusi untuk penyelarasan vertikal dekorasi teks dan teks multi-baris yang akurat dan otomatis. Sampai saat itu, ini masih merupakan solusi keren yang memungkinkan kita membuat efek selaras sempurna seperti ini (demo ini menggunakan overline Dan Garis bawah dan “lotta” penuh text-decoration-thickness tentu):

Animasi text-decoration-inset

text-decoration-inset Menjadi lebih menarik ketika kita mulai memikirkan tentang transisi/animasi. Kita sering membuat animasi garis bawah, atau bisa dibilang palsu ::after Digarisbawahi, tetapi dengan text-decoration-inset Kita bisa melakukannya secara lokal. Pada contoh di bawah, saya mengalikan ilustrasinya dengan sepuluh :hover. Tidak ada yang terlalu gila, tapi ingat kita hanya bisa menggunakan <length> nilai, jadi coba gunakan em unit, atau setidaknya menguji teks dengan ukuran font berbeda.

Sekali lagi, saat ini memerlukan Firefox 146+:

a {
  transition: 300ms;
  text-decoration-inset: 0.046em 0.009em;

  &:hover {
    text-decoration-inset: calc(0.046em * 10);
  }
}

Kini semakin ambisius, demo berikutnya memanfaatkan CSS @keyframes Animasikan untuk membuat efek garis bawah bintang jatuh. Cara kerjanya adalah kita mendorong ilustrasi kiri ke sisi lain – tapi <length>Itu saja, ingat? kita tidak bisa menggunakan 100% Di sini, jadi saya yakin lebar elemennya 4.5em dan gunakan itu sebagai nilai (semakin tepat kita, semakin baik animasi atau transisinya). Periksa komentar kode untuk penjelasan lengkap:

a {
  /*
    The value at the start and end of the
    animation, as well as the default value
  */
  text-decoration-inset: 0.046em 0.009em;

  &:hover {
    animation: 1s next-level;
  }
}

@keyframes next-level {
  /* By half-way through the animation... */
  50% {
    /*
      ...the left inset has shifted 4.5em, 
      which is the full width of the element
    */
    text-decoration-inset: 4.5em 0.009em;

    /* It’s faded out as well */
    text-decoration-color: transparent;
  }

  /* Immediately after that... */
  50.999% {
    /* ...both insets are set to the left */
    text-decoration-inset: 0.046em 4.5em;
  }

  /* Then it animates back to the default value */
}

luas, text-decoration-inset adalah fitur yang bagus. Memang bukan tanpa kekurangan, namun tidak ada fitur yang sempurna. Secara pribadi, apa pun yang dapat membantu saya menyempurnakan detailnya secara lokal sangat diterima, dan text-decoration-inset Kita dapat meningkatkan dua hal – perataan dekorasi teks (relatif terhadap teks) dan transisi atau animasi dekorasi teks.

rencana pengembangan website



metode pengembangan website

jelaskan beberapa rencana untuk pengembangan website, proses pengembangan website, kekuatan dan kelemahan bisnis pengembangan website
, jasa pengembangan website, tahap pengembangan website, biaya pengembangan website

#textdecorationinset #seperti #pengisi #untuk #dekorasi #teks

Tinggalkan Balasan

Alamat email Anda tidak akan dipublikasikan. Ruas yang wajib ditandai *