Baru -baru ini, saya merancang gambarajah wireframe alat pengindahan kod. Keesokan harinya, saya memutuskan untuk menjadikannya alat sebenar. Seluruh projek telah siap dalam masa kurang dari dua hari.
Saya telah berfikir tentang membina alat pengindahan kod baru. Idea ini tidak unik, tetapi setiap kali saya menggunakan alat orang lain, saya mendapati diri saya memohon semula tetapan yang sama berulang kali dan mengelakkan iklan setiap kali . ?? ?
Saya mahukan alat yang mudah dan mudah digunakan tanpa sebarang masalah, jadi minggu lepas saya mengambil beberapa kertas dan mula melukis wireframe. Saya sangat suka melukis wireframes dengan tangan. Direka dengan pensil dan kertas, otak saya berfungsi lebih baik daripada menatap skrin.
Saya segera diilhamkan selepas melukis wireframe. Keesokan harinya, saya mengambil masa keluar dari kerja harian saya dan menjadikannya realiti. ????
Lihat Keputusan
reka bentuk
Saya tahu saya mahu editor kod menjadi tumpuan alat, jadi saya membuat bar menu tipis di bahagian atas untuk mod kawalan (mis. HTML, CSS, JavaScript) dan tetapan. Saya juga menambah butang "Mengenai".
Editor itu sendiri mengambil sebahagian besar skrin, tetapi ia menggabungkan dengan baik dengan latar belakang supaya anda tidak menyedarinya. Daripada menggunakan arahan untuk membuang ruang, saya menggunakan pemegang tempat yang hilang apabila anda mula menaip.
Di bahagian bawah, saya mencipta bar status yang memaparkan statistik masa nyata mengenai kod, termasuk mod semasa, tetapan lekukan, kiraan talian, bilangan aksara, dan saiz dokumen dalam bait. Terdapat butang yang jelas dan bersih dan salin di sebelah kanan bar status. Di tengah -tengah adalah logo yang memamerkan perkhidmatan saya sendiri.
Saya tidak fikir ramai pemaju akan menulis kod pada telefon mereka, tetapi saya masih mahu alat ini dijalankan pada peranti mudah alih. Sebagai tambahan kepada teknik responsif yang biasa digunakan, saya juga perlu memantau saiz tetingkap dan menyesuaikan kedudukan tab apabila skrin menjadi terlalu sempit.
Saya menggunakan unit Flexbox dan Viewport untuk saiz semula menegak. Ini sebenarnya mudah dilakukan kecuali sedikit masalah iOS. Berikut adalah pen yang menunjukkan wireframe asas. Perhatikan bagaimana kawasan teks terbentang untuk mengisi ruang yang tidak digunakan antara tajuk dan footer.
Jika anda melihat tab JavaScript, anda akan melihat masalah dan penyelesaian iOS. Saya tidak pasti bagaimana untuk mengesan ciri sedemikian, jadi sekarang ini hanya pemeriksaan peranti mudah.
Menetapkan pemprosesan
Saya mahu tetapan yang paling biasa digunakan untuk menjadi mudah diakses, tetapi juga mendedahkan tetapan lanjutan untuk setiap mod. Untuk melakukan ini, saya membuat butang Tetapan ke dalam pop timbul dengan pautan ke tetapan yang lebih maju. Selepas menukar tetapan, UI akan dikemas kini dengan serta -merta dan tetapan akan disimpan ke LocalStorage untuk masa yang lama.
Saya menggunakan vue.js di sini. Setiap tetapan dipetakan ke harta data, dan apabila salah satu daripada mereka berubah, kemas kini UI (jika diperlukan) dan saya panggil SaveSettings (). Ia kira -kira seperti ini.
fungsi savesettings () { tetapan const = {}; // SettingStortore adalah pelbagai nama atribut yang akan berterusan // "ini" merujuk kepada model Vue semasaStostore.map (key => tetapan [key] = ini [kunci]); localStorage.setItem ('Tetapan', JSON.Stringify (Tetapan)); }
Setiap tetapan adalah harta data yang disegerakkan dengan localStorage. Ini adalah cara penyimpanan negara yang agak primitif, jadi saya boleh mengemas kini permohonan kemudian menggunakan perpustakaan pengurusan negeri seperti VUEX.
Untuk memulihkan tetapan, saya mempunyai fungsi pemulihan () yang berjalan apabila aplikasi bermula.
fungsi restoresettings () { const json = localStorage.getItem ('Tetapan'); jika (json) { Cuba { setting const = json.parse (json); Object.keys (tetapan) .foreach (key => { jika (settingStortore.includes (kunci)) { Ini [kunci] = tetapan [kunci]; } }); } menangkap (err) { window.alert ('Ralat memuatkan tetapan sebelumnya'); } } }
Fungsi ini mendapat tetapan dari LocalStorage dan menggunakannya satu demi satu, pastikan hanya tetapan yang sah di settostore diimport.
Pautan Tetapan Lanjutan membuka dialog dengan setiap tab Mod. Walaupun lebih daripada 30 tetapan secara keseluruhan, semuanya dianjurkan dan boleh diakses supaya pengguna tidak merasa terharu.
Sapukan tema
Mod gelap sangat popular pada hari -hari ini, jadi ia didayakan secara lalai. Bagi mereka yang menyukainya, terdapat juga tema warna yang cerah. Seluruh UI akan berubah kecuali popup dan dialog.
Saya telah mempertimbangkan untuk menggunakan prefers-color-scheme
, yang berlaku di Firefox 67 baru-baru ini, tetapi saya memutuskan untuk menukar butang mungkin lebih baik. Sokongan penyemak imbas untuk pertanyaan keutamaan tema warna tidak begitu baik, dan pemaju pelik. (Sebagai contoh, saya menggunakan macOS dengan tema yang cerah, tetapi editor teks saya gelap.)
Tentukan fungsi
Sangat mudah untuk menghasilkan titik ciri. Sukar untuk mengehadkan ciri -ciri versi awal. Berikut adalah ciri -ciri yang paling relevan yang saya hantar segera:
- Mencantikkan kod HTML, CSS dan JavaScript
- Sintaks yang menyoroti dengan padanan label/pendakap
- Tampal atau seret dan jatuhkan fail untuk memuatkan kod
- Mengesan keutamaan lekukan secara automatik berdasarkan kod yang disisipkan atau fail drag-and-drop
- Tema cerah dan gelap
- Satu klik pembersihan dan penyalinan
- Pintasan papan kekunci
- Kebanyakan pilihan JS mencantikkan boleh dikonfigurasikan
- Tetapan disimpan di localStorage selama -lamanya
- UI yang minimum, tiada iklan (hanya publisiti yang tidak mencolok untuk perkhidmatan saya sendiri)?
Saya juga menambah beberapa telur Paskah untuk bersenang -senang. Cuba menyegarkan halaman, meneroka pintasan, dan berkongsi di Facebook atau Twitter untuk mencari mereka. ?
Alat dan perpustakaan yang saya gunakan
Saya sangat suka vue.js. Ia mungkin terlalu banyak untuk projek ini, tetapi Vue CLI membolehkan saya memulakan bangunan dengan semua alat terkini dengan arahan yang mudah.
Vue membuat kod cantik
Saya tidak perlu membuang masa membina perancah, yang membantu saya membina alat ini dengan cepat. Di samping itu, VUE sangat mudah dalam statistik masa nyata, menukar tema, tetapan menukar, dan lain-lain. Saya telah menggunakan pelbagai komponen UI elemen seperti butang, elemen bentuk, popup, dan dialog.
Editor ini dikuasakan oleh Codemirror dan menggunakan gaya tersuai. Ini adalah projek yang disokong dengan baik dan hebat yang saya sangat mengesyorkan untuk penyuntingan kod dalam penyemak imbas.
Perpustakaan yang melakukan semua pengindahan dipanggil JS Beautify, yang mengendalikan JavaScript, HTML, dan CSS. JS Beautify berjalan di sisi pelanggan, jadi aplikasi ini sebenarnya tidak mempunyai backend - penyemak imbas anda melakukan semua kerja!
JS Beautify sangat mudah digunakan. Pasangnya menggunakan npm install js-beautify
dan jalankan kod anda melalui fungsi yang sepadan.
Import Kecantikan dari 'JS-Beautify'; const code = 'kod anda di sini'; tetapan const = { // Tetapan anda di sini }; // html const html = cantik.html (kod, tetapan) // css const css = cantik.css (kod, tetapan) // JavaScript const js = cantik.js (kod, tetapan)
Setiap fungsi mengembalikan rentetan yang mengandungi kod cantik. Anda boleh menukar kaedah output setiap bahasa dengan lulus dalam tetapan anda sendiri.
Saya telah ditanya beberapa kali tentang Prettier, yang merupakan alat yang sama, jadi patut disebutkan bahawa saya memilih JS mencantikkan kerana ia tidak terlalu sewenang -wenang dan lebih dikonfigurasikan. Jika permintaan cukup besar, saya akan mempertimbangkan untuk menambah pilihan untuk beralih antara JS mencantikkan dan lebih cantik.
Saya telah menggunakan perpustakaan ini sebelum ini, jadi integrasi sebenarnya sangat mudah. ?
Projek ini adalah terima kasih kepada permohonan saya Surreal CMS. Jika anda mencari CMS yang sangat baik untuk laman web statik, periksa - ia percuma untuk laman peribadi, pendidikan dan bukan keuntungan!
Oh, jika anda ingin tahu editor mana yang saya gunakan ... ia adalah kod studio visual. ????
Atas ialah kandungan terperinci Bagaimana saya membuat cantik kod dalam dua hari. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Alat AI Hot

Undress AI Tool
Gambar buka pakaian secara percuma

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Clothoff.io
Penyingkiran pakaian AI

Video Face Swap
Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Terdapat tiga cara untuk membuat pemutar pemuatan CSS: 1. Gunakan pemutar asas sempadan untuk mencapai animasi mudah melalui HTML dan CSS; 2. Gunakan pemutar tersuai pelbagai mata untuk mencapai kesan lompat melalui masa kelewatan yang berlainan; 3. Tambahkan pemutar dalam butang dan beralih kelas melalui JavaScript untuk memaparkan status pemuatan. Setiap pendekatan menekankan pentingnya butiran reka bentuk seperti warna, saiz, kebolehcapaian dan pengoptimuman prestasi untuk meningkatkan pengalaman pengguna.

Untuk menangani keserasian pelayar CSS dan isu awalan, anda perlu memahami perbezaan sokongan penyemak imbas dan menggunakan awalan vendor dengan munasabah. 1. Memahami masalah biasa seperti Flexbox dan sokongan grid, kedudukan: prestasi tidak sah, dan prestasi animasi adalah berbeza; 2. Periksa status sokongan ciri CANIUSE Ciri; 3. Gunakan dengan betul -webkit-, -moz-, -ms-, -o- dan awalan pengeluar lain; 4. Adalah disyorkan untuk menggunakan autoprefixer untuk menambah awalan secara automatik; 5. Pasang postcss dan konfigurasi penyemak imbas untuk menentukan penyemak imbas sasaran; 6. Secara automatik mengendalikan keserasian semasa pembinaan; 7. Ciri -ciri pengesanan moden boleh digunakan untuk projek lama; 8. Tidak perlu meneruskan konsistensi semua pelayar,

Themaindifferencesbetweendisplay: inline, block, andinline-blockinhtml/cssarelayoutbehavior, spaceusage, andstylingcontrol.1.inlineelementsflowwithtext, notstartonNewlines, abaikanwidth/height, andonyapplylylylylylinddding/

Gunakan atribut clip-path CSS untuk menanam unsur-unsur ke dalam bentuk tersuai, seperti segitiga, takik bulat, poligon, dan lain-lain, tanpa bergantung pada gambar atau SVG. Kelebihannya termasuk: 1. Menyokong pelbagai bentuk asas seperti Circle, Ellipse, Polygon, dan lain -lain; 2. Pelarasan responsif dan boleh disesuaikan dengan terminal mudah alih; 3. Mudah untuk animasi, dan boleh digabungkan dengan hover atau javascript untuk mencapai kesan dinamik; 4. Ia tidak menjejaskan aliran susun atur, dan hanya tanaman kawasan paparan. Penggunaan umum adalah seperti laluan klip bulat: bulatan (50pxatcenter) dan triangle clip-path: polygon (50%0%, 100 0%, 0 0%). Notis

Menetapkan gaya pautan yang telah anda lawati dapat meningkatkan pengalaman pengguna, terutama di laman web yang berintensifkan kandungan untuk membantu pengguna menavigasi lebih baik. 1. Gunakan CSS: Kelas pseudo yang dilawati untuk menentukan gaya pautan yang dikunjungi, seperti perubahan warna; 2. Perhatikan bahawa penyemak imbas hanya membenarkan pengubahsuaian beberapa atribut disebabkan oleh sekatan privasi; 3. Pemilihan warna harus diselaraskan dengan gaya keseluruhan untuk mengelakkan ketangkasan; 4. Terminal mudah alih mungkin tidak memaparkan kesan ini, dan disyorkan untuk menggabungkannya dengan arahan visual lain seperti logo tambahan ikon.

Untuk membuat imej responsif menggunakan CSS, ia boleh dicapai terutamanya melalui kaedah berikut: 1. Gunakan maksimum lebar: 100% dan ketinggian: auto untuk membolehkan imej menyesuaikan diri dengan lebar kontena sambil mengekalkan perkadaran; 2. Gunakan atribut SRCSET dan saiz HTML dengan bijak memuatkan sumber imej yang disesuaikan dengan skrin yang berbeza; 3. Gunakan objek-sesuai dan kedudukan objek untuk mengawal penanaman imej dan paparan fokus. Bersama -sama, kaedah ini memastikan bahawa imej dibentangkan dengan jelas dan indah pada peranti yang berbeza.

Penyemak imbas yang berbeza mempunyai perbezaan dalam parsing CSS, mengakibatkan kesan paparan yang tidak konsisten, terutamanya termasuk perbezaan gaya lalai, kaedah pengiraan model kotak, flexbox dan tahap sokongan susun atur grid, dan tingkah laku yang tidak konsisten bagi atribut CSS tertentu. 1. Pemprosesan gaya lalai tidak konsisten. Penyelesaiannya adalah menggunakan cssreset atau normalisasi.css untuk menyatukan gaya awal; 2. Kaedah pengiraan model kotak versi lama IE adalah berbeza. Adalah disyorkan untuk menggunakan kotak-kotak: kotak sempadan dengan cara yang bersatu; 3. Flexbox dan grid melakukan secara berbeza dalam kes kelebihan atau dalam versi lama. Lebih banyak ujian dan gunakan autoprefixer; 4. Beberapa tingkah laku atribut CSS tidak konsisten. CANIUSE mesti dirujuk dan diturunkan.

Pilihan unit CSS bergantung kepada keperluan reka bentuk dan keperluan responsif. 1.PX digunakan untuk saiz tetap, sesuai untuk kawalan yang tepat tetapi kekurangan keanjalan; 2.EM adalah unit relatif, yang mudah disebabkan oleh pengaruh unsur induk, sementara REM lebih stabil berdasarkan unsur akar dan sesuai untuk skala global; 3.VW/VH didasarkan pada saiz viewport, sesuai untuk reka bentuk yang responsif, tetapi perhatian harus dibayar kepada prestasi di bawah skrin yang melampau; 4. Apabila memilih, ia harus ditentukan berdasarkan sama ada pelarasan responsif, hubungan hierarki elemen dan ketergantungan viewport. Penggunaan yang munasabah boleh meningkatkan fleksibiliti dan penyelenggaraan susun atur.
