2010-02-24 29 views
13

Có thể bao gồm nhiều css cùng một lúc trong html không? Hoặc để được chính xác, có thể bao gồm tất cả các css được đặt trong một thư mục, trong một đi?
như hiện nay những gì chúng ta làm là: -Làm thế nào để bao gồm tất cả các css giữ trong một direcotry?

<link type="text/css" rel="stylesheet" href="./tabs_css/navigation.css"> 

tôi cần một cái gì đó như: -

<link type="text/css" rel="stylesheet" href="./tabs_css/*.css"> 

Có thể? hoặc là có bất kỳ thay thế này?

Trả lời

24

Bạn có thể tạo một stylesheet thạc sĩ rằng bạn bao gồm trong mỗi trang, và trong đó tập tin css bạn có thể sử dụng @import để bao gồm những người khác.

Điều này không giải quyết được vấn đề phải bao gồm từng tệp css riêng lẻ, nhưng ít nhất nó đóng gói nó trong bảng định kiểu chính để bạn không phải lặp lại tất cả các tham chiếu trong mọi tệp html. Nếu bạn thêm các tệp css bổ sung, bạn sẽ chỉ cần thêm tham chiếu trong css chính và tất cả các trang sẽ có quyền truy cập vào nó.

Ví dụ HTML CSS Reference:

<link href="master.css" type="text/css" /> 

Ví dụ Thạc sĩ CSS (master.css):

@import url(style1.css); 
@import url(style2.css); 
@import url(style3.css); 

đọc về nhiều when to use @import and it's compatibility with older browsers.

+0

có! tôi có thể chấp nhận giải pháp này –

+0

Tôi rất vui vì giải pháp này phù hợp với bạn, nhưng cũng có một số điểm tốt để được đưa ra trong các câu trả lời và nhận xét khác. Nếu có thể bạn nên cân nhắc việc kết hợp các tệp css thành một. –

1

Không thể sử dụng ký tự đại diện trong a href. Bạn sẽ cần phải chỉ định một thẻ liên kết cho mọi tệp css bạn cần đưa vào.

+0

bạn có nghĩa là nếu có 20 css trong thư mục, sau đó tôi sẽ phải đề cập đến tất cả 20 css !! –

+0

có :-) bạn sẽ –

+0

Bạn nên cân nhắc kết hợp một số tệp css này lại với nhau. Hoặc nếu bạn giữ tất cả hai mươi, hãy đảm bảo rằng bộ nhớ đệm hoạt động chính xác. –

0

Bạn có thể viết tập lệnh phía máy chủ nối tất cả các tệp trong thư mục và gửi cho khách hàng, sau đó đặt tập lệnh vào thẻ <link>.

Tuy nhiên, hãy cẩn thận với các lỗi cú pháp.

4

Bạn cần thực hiện thao tác này. Nếu bạn đang sử dụng PHP, hãy xem glob.

Ví dụ:

foreach (glob("path/to/css/*.css") as $css) { 
    echo "<link type='text/css' rel='stylesheet' href='$css'>\n"; 
} 
+0

Hoàn hảo. Chính xác những gì tôi cần. Làm việc như một nét duyên dáng –

0

Nó là không thể làm điều đó phía khách hàng. Nó có thể làm điều đó với sự giúp đỡ của một công nghệ phía máy chủ. Tuy nhiên, cách tiếp cận tốt nhất là kết hợp tất cả CSS vào một tệp duy nhất và bao gồm nó.
Nếu bạn vẫn muốn giữ css tách ra các tập tin, làm những gì nhiều làm và sử dụng một thể thay công cụ xây dựng kết hợp tất cả css vào một tập tin chỉ dành riêng cho các máy chủ sản xuất/kiểm tra

0

bạn có thể sử dụng php để liệt kê tất cả các tập tin với css mở rộng trong thư mục đó ...

$fp = opendir($dir); 
while ($file = readdir($fp)) { 
     if (strpos($file, '.css',1)) 
      $results[] = $file; 
    } 
closedir($fp); 

... và hơn làm một cấu trúc foreach để incude css của

+0

Từ những câu hỏi khác của anh, có vẻ như anh ta sử dụng Java. – SLaks

0

có thể có một số cách giải quyết có thể:

  • Xem xét ý tưởng nhập trang PHP (ví dụ: ./tabs_css/allcss.php) kết nối và trả về tất cả css trong thư mục. Đây có thể là một chút CPU chuyên sâu.

  • Cân nhắc việc tạo tệp kết hợp css là ghép nối của tất cả các tệp CSS của bạn. Điều này có thể được tạo tự động bằng cách thêm các móc đặc biệt vào hệ thống kiểm soát phiên bản của bạn.

Các vấn đề liên quan