Apakah mungkin untuk memasukkan satu file CSS ke yang lain?


782

Apakah mungkin untuk memasukkan satu file CSS ke yang lain?


26
Hanya fyi, melakukan ini tidak menyimpan permintaan HTTP. Ini hanya menyelamatkan Anda dari keharusan untuk memasukkan file .css yang diimpor di tempat lain.
T. Brian Jones

1
Saya akan hampir sama dengan memasukkan CSS lain sebelumnya dan bukan yang terbaik dari praktik
Gaizka Allende

Jawaban:


1087

Iya:

@import url("base.css");

catatan:

  • The @importAturan harus mendahului semua aturan lainnya (kecuali @charset).
  • @importPernyataan tambahan membutuhkan permintaan server tambahan. Sebagai alternatif, gabungkan semua CSS ke dalam satu file untuk menghindari beberapa permintaan HTTP. Misalnya, salin konten dari base.cssdan special.csske base-special.cssdan hanya referensi base-special.css.

143

Iya. Mengimpor file CSS ke file CSS lain dimungkinkan.

Ini harus menjadi aturan pertama dalam style sheet menggunakan aturan @import .

@import "mystyle.css";
@import url("mystyle.css");

Satu-satunya peringatan adalah bahwa browser web lama tidak akan mendukungnya. Bahkan, ini adalah salah satu 'hack' CSS untuk menyembunyikan gaya CSS dari browser lama.

Lihat daftar ini untuk dukungan browser.


42

The @import url("base.css");bekerja dengan baik tapi ingatlah bahwa setiap @importpernyataan adalah permintaan baru ke server. Ini mungkin bukan masalah bagi Anda, tetapi ketika kinerja optimal diperlukan Anda harus menghindari @import.


2
bukankah file CSS di-cache? Jadi hanya akan meminta file sekali saja? tampaknya sepele untuk dikhawatirkan.
endolith

1
Jika Anda tidak mengecilkan css Anda ke satu file maka ya Anda benar tetapi setelah itu maka Anda hanya memanggil satu file css. Koreksi saya jika saya salah tentu saja.
mjwrazor

27

@importAturan CSS tidak hanya itu. Misalnya,

@import url('/css/common.css');
@import url('/css/colors.css');


11

Dalam beberapa kasus dimungkinkan menggunakan @import "file.css", dan sebagian besar peramban modern harus mendukung ini, peramban lama seperti NN4, akan menjadi sedikit gila.

Catatan: pernyataan impor harus mendahului semua deklarasi lain dalam file, dan mengujinya pada semua browser target Anda sebelum menggunakannya dalam produksi.



6

ya itu mungkin menggunakan @import dan memberikan path misalnya file css

@import url("mycssfile.css");

atau

@import "mycssfile.css";

6

@import("/path-to-your-styles.css");

Itu adalah cara terbaik untuk memasukkan stylesheet css ke dalam stylesheet css menggunakan css.


6

Aturan "@import" dapat memanggil beberapa file gaya. File-file ini dipanggil oleh browser atau User Agent ketika dibutuhkan misalnya tag HTML memanggil CSS.

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="EN" dir="ltr">
<head>
<title>Using @import</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<style type="text/css">
@import url("main.css");
</style>
</head>
<body>
</body>
</html>

File CSS "main.css" Berisi Sintaksis Berikut:

@import url("fineprint.css") print;
@import url("bluish.css") projection, tv;
@import 'custom.css';
@import url("chrome://communicator/skin/");
@import "common.css" screen, projection;
@import url('landscape.css') screen and (orientation:landscape);

Untuk memasukkan elemen style gunakan createTexNode jangan gunakan innerHTML tetapi:

<script>
var style = document.createElement('style');
style.setAttribute("type", "text/css");
var textNode = document.createTextNode("
    @import 'fineprint.css' print;
    @import 'bluish.css' projection, tv;
    @import 'custom.css';
    @import 'chrome://communicator/skin/';
    @import 'common.css' screen, projection;
    @import 'landscape.css' screen and (orientation:landscape);
");
style.appendChild(textNode);
</script>

Hanya untuk menunjukkan, sementara @hylp menunjukkan bahwa mungkin untuk mengganti kelas dari impor (kelas projectiondan screen?) Ini biasanya tidak pernah merupakan hal yang baik untuk dilakukan. ;)
Tcll

2
@import url('style.css');

Berbeda dengan jawaban terbaik, tidak disarankan untuk menggabungkan semua file CSS menjadi satu potongan saat menggunakan HTTP / 2.0


2

Impor bootstrap dengan altervista dan wordpress

Saya menggunakan ini untuk mengimpor bootstrap.css di altervista dengan wordpress

@import url("https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css");

dan itu berfungsi dengan baik, karena akan menghapus kode rel tautan html jika saya memasukkannya ke dalam halaman


1

Ya, Anda dapat mengimpor dengan mudah satu css ke yang lain (di mana pun di situs web) Anda harus menggunakan seperti:

@import url("url_path");

1

Untuk alasan apa pun, @import tidak bekerja untuk saya, tetapi itu tidak benar-benar diperlukan, bukan?

Inilah yang saya lakukan sebagai gantinya, dalam html:

  <link rel="stylesheet" media="print" href="myap-print.css">
  <link rel="stylesheet" media="print" href="myap-screen.css">
  <link rel="stylesheet" media="screen" href="myap-screen.css">

Perhatikan bahwa media = "print" memiliki 2 stylesheet: myap-print.css dan myap-screen.css. Ini efek yang sama seperti memasukkan myap-screen.css dalam myap-print.css.


Tidak, ini tidak benar. Ini termasuk beberapa file CSS dari dalam file HTML, tidak termasuk file CSS dari dalam file CSS lain.
TylerH

0

nyanyikan Aturan CSS @import di sini

@import url('/css/header.css') screen;
@import url('/css/content.css') screen;
@import url('/css/sidebar.css') screen;
@import url('/css/print.css') print;

0

Saya telah membuat file main.css dan menyertakan semua file css di dalamnya.

Kami hanya dapat menyertakan satu file main.css

@import url('style.css');
@import url('platforms.css');

-3

Saya menemukan ini dan saya hanya ingin mengatakan JANGAN GUNAKAN @IMPORT DALAM CSS !!!! Pernyataan impor dikirim ke klien dan klien melakukan permintaan lain. Jika Anda ingin membagi CSS antara berbagai file, gunakan Less. Dalam Kurang pernyataan impor terjadi di server dan output di-cache dan tidak membuat penalti kinerja dengan memaksa klien untuk membuat koneksi lain. Sass juga merupakan pilihan lain yang belum saya jelajahi. Terus terang, jika Anda tidak menggunakan Less atau Sass maka Anda harus mulai. http://willseitz-code.blogspot.com/2013/01/using-less-to-manage-css-files.html


1
Klien akan melakukan permintaan lain, bukan koneksi lain. Dan untuk kualitasnya, ini adalah cara yang baik untuk menggunakan css impor. Jauh lebih baik untuk memiliki impor daripada file css besar yang tumbuh dan tumbuh dengan proyek ...
YvesR


1
Tetap - itu hanya satu permintaan lagi. Dari ratusan berpotensi untuk memuat halaman lengkap.
Steve Bennett

8
Baik?! Satu permintaan lagi hampir tidak menjamin penafian tangan-lengan dan semua-topi. Permintaan bukanlah praktik yang buruk. -1 untuk jawabannya - Kultus kargo KURANG dan SASS.
Chris Baker

Yah, ini hanya satu permintaan lagi .. tetapi Anda dapat mengimpor lebih banyak CSS menjadi satu dan mereka diunduh secara parallelly.
wh1sp3r
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.