Rumah > hujung hadapan web > tutorial css > Bagaimana saya membuat Labu CSS Tulen.

Bagaimana saya membuat Labu CSS Tulen.

Barbara Streisand
Lepaskan: 2024-12-29 11:48:17
asal
715 orang telah melayarinya

Selamat Halloween, saya membuat ini baru-baru ini membuat Labu CSS 100% ini untuk mengikuti semangat musim yang menyeramkan dan sesetengah orang ingin tahu cara ia dibuat.

Lihat Pen
100% CSS Labu oleh micfun123 (@micfun123)
pada CodePen.

Jadi biar saya terangkan cara ia berfungsi. Bagi anda yang hanya mahukan kod dan tidak mahu melihat prosesnya, berikut ialah CodePen .

Saya tidak pernah melakukan perkara seperti ini sebelum ini jadi matlamat pertama saya ialah 3 bujur oren.

Jadi saya mulakan dengan HTML.

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>CSS Pumpkin</title>
    <link rel="stylesheet" href="pumpkin.css">
</head>
<body>
    <div>



<p>The HTML does not really change anything now but it also don't show anything yet. Time for the CSS.<br>
</p>

<pre class="brush:php;toolbar:false">body {
display: flex;
justify-content: center; 
align-items: center;
height: 100vh;
}
.pumpkin {
position: relative;
display: flex;
align-items: center;
}  
.left{
width: 110px;
height: 160px;
background: rgb(255, 117, 24);
border-radius: 50%;
}
.right{
width: 110px;
height: 160px;
background: rgb(255, 117, 24);
border-radius: 50%;
}  
.center{
width: 110px;
height: 160px;
background: rgb(255, 117, 24);
border-radius: 50%;
}
Salin selepas log masuk
Salin selepas log masuk

Ini menghasilkan 3 Bujur oren Sempurna bersebelahan. Apa yang berlaku di sini? Mula-mula, kami memusatkan div labu di tengah halaman menggunakan tag badan. Kami melakukan ini dengan 3 baris pertama. Seterusnya, kami menggunakan ketinggian: 100vh; Untuk memberitahu kod bahawa teg badan mengambil 100% daripada skrin. Tanpa ini, tag badan hanya akan sebesar kandungan, bermakna Bujur akan berpusat di bahagian atas halaman. Jadi inilah rupanya.

How I made a Pure CSS Pumpkin.
Seterusnya, Kami mahu bulatan bertindih, ini boleh dilakukan dengan agak mudah dengan memberikan Oval kiri dan kanan margin negatif.

.left{
width: 110px;
height: 160px;
background: rgb(255, 117, 24);
border-radius: 50%;
margin-right: -45px;
}
.right{
width: 110px;
height: 160px;
background: rgb(255, 117, 24);
border-radius: 50%;
margin-left: -45px;
}
Salin selepas log masuk
Salin selepas log masuk

Jadi di sini kita mengalihkan Ovel kanan ke kiri sebanyak 45 piksel dan Ovel kiri ke kanan sebanyak 45 piksel. (Saya tidak akan menambah foto peringkat ini kerana saya masih tidak mempunyai cara untuk berurusan dengan menyimpan foto)

Sekarang untuk bahagian yang lebih sukar (Sesetengahnya, ok banyak Google telah digunakan)

.stem {
position: absolute;
top: -30px;
left: 50%;
transform: translateX(-50%); /* Center the stem horizontally with in the contanter */
width: 30px;
height: 60px;
background-color: brown;
border-radius: 3px;
z-index: -1;
}
.curve{
position: absolute;
top: -47px;
left: 43%;
transform: translateX(-50%); /* Center the stem horizontally with in the contanter */
transform: rotate(-15deg);
width: 30px;
height: 30px;
background-color: brown;
border-radius: 3px;
z-index: -1;
}
Salin selepas log masuk

Jadi lebar , tinggi, jejari sempadan dan warna latar belakang cukup jelas. Jadi saya akan melangkauinya. Bermula dengan kedudukan: mutlak; apa yang dilakukan ialah mengalih keluar div daripada aliran tapak web. Sebaliknya, ia berdasarkan titik sauh terdekat. jawatan: mutlak; Boleh diletakkan di atas mana-mana elemen. Seterusnya, untuk memusatkan Batang secara mendatar kami menggunakan kiri: 50% dan mengubah: translateX(-50%); Ia masuk akal apabila anda memikirkannya tetapi anda perlu memikirkannya untuk bermula ke kiri: 50% Memusatkan tepi kiri batang dalam div labu. Saya mahu bahagian tengah batang berada di tengah-tengah labu. mengubah: translateX(-50%); menggerakkan batang semula ke arah sebelah kiri sebanyak separuh saiz batang. atas: -47px; Melakukan hampir seperti yang anda harapkan. Ia menggerakkan tepi atas ke atas sebanyak 47 px. z-index ialah perkara yang saya temui baru-baru ini, pada asasnya ketinggian elemen. Saya mahu indeks-z berada di belakang labu jadi saya memberikannya indeks-z : -1 manakala labu mempunyai indeks lalai 0. Beginilah rupanya.

How I made a Pure CSS Pumpkin.

Akhirnya Mata, mulut dan latar belakang. Mari kita mulakan dengan mata,

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>CSS Pumpkin</title>
    <link rel="stylesheet" href="pumpkin.css">
</head>
<body>
    <div>



<p>The HTML does not really change anything now but it also don't show anything yet. Time for the CSS.<br>
</p>

<pre class="brush:php;toolbar:false">body {
display: flex;
justify-content: center; 
align-items: center;
height: 100vh;
}
.pumpkin {
position: relative;
display: flex;
align-items: center;
}  
.left{
width: 110px;
height: 160px;
background: rgb(255, 117, 24);
border-radius: 50%;
}
.right{
width: 110px;
height: 160px;
background: rgb(255, 117, 24);
border-radius: 50%;
}  
.center{
width: 110px;
height: 160px;
background: rgb(255, 117, 24);
border-radius: 50%;
}
Salin selepas log masuk
Salin selepas log masuk

Jadi ini kelihatan lebih menakutkan daripada lebar sempadan: 0 50px 41px 30px; Jadi di sini kita menetapkan panjang setiap sisi segi empat sama. Ia bermula dari atas dan bergerak mengikut arah jam. Jadi bahagian atas segi empat sama mempunyai panjang 0. Ini kerana segi tiga mempunyai 3 sisi, silap mata ini membolehkan kita mengeluarkan salah satu sisi yang membentuk segi tiga. Kemudian bahagian kanan adalah 50px panjang, bahagian bawah adalah 50px panjang dan sebelah kiri adalah 30px panjang. Untuk Mata kanan kita membalikkan nilai kiri dan kanan supaya ia menghala ke arah lain. warna sempadan: lutsinar lutsinar #000000 lutsinar; Jadi anda mungkin tertanya-tanya mengapa terdapat begitu banyak yang telus. Anda lihat sebenarnya terdapat 3 segitiga di sini (salah satu daripadanya tidak wujud kerana 0 lebar) Kami hanya mahu mewarnakan segi tiga bahagian bawah jadi kami menetapkan 3 yang lain kepada telus. gaya sempadan: pepejal; Kami mahu segitiga mempunyai isian pepejal jadi kami perlu menetapkan gaya kepada Pepejal. Kami belum benar-benar mengisi segi tiga sebaliknya kami mempunyai sempadan yang sangat besar jadi nampaknya kami ada. Selepas semua ini, kita kini mempunyai mata.

How I made a Pure CSS Pumpkin.

Langkah terakhir ialah senyuman.

.left{
width: 110px;
height: 160px;
background: rgb(255, 117, 24);
border-radius: 50%;
margin-right: -45px;
}
.right{
width: 110px;
height: 160px;
background: rgb(255, 117, 24);
border-radius: 50%;
margin-left: -45px;
}
Salin selepas log masuk
Salin selepas log masuk

jejari-sempadan-atas-kiri: 110px; dan jejari sempadan-atas-kanan: 110px; tentukan betapa bulatnya sudut atas. Ini adalah bit yang menjadikan separuh bulatan namun ini juga akan meletakkan lengkung di bahagian atas. Untuk membetulkannya, saya menambah transform: rotate(190deg) Untuk memutarkannya menjadi Smile dan digunakan ke kiri: 25%; untuk menjadikannya sedikit daripada Pusat. Jadi inilah keputusan akhir.

Lihat Pen
100% CSS Labu oleh micfun123 (@micfun123)
pada CodePen.

Saya akan mengakui ia bukan penyelesaian yang paling cantik atau paling cekap, namun, ini adalah kali pertama saya mencuba untuk melukis sesuatu dalam CSS dan saya agak gembira dengannya. Seperti biasa, sila tinggalkan saya maklum balas mengenai Discord atau reddit.

Atas ialah kandungan terperinci Bagaimana saya membuat Labu CSS Tulen.. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:dev.to
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan