Làm cách nào để ghi đè các kiểu CSS trong mẫu của tôi?


21

Khi sử dụng mẫu Joomla miễn phí / thương mại từ Mẫu Club X / Y / Z, cách tốt nhất để bao gồm các kiểu CSS của riêng tôi là gì?


1
Thêm một biểu định kiểu custom.css. nếu mẫu của bạn không tự động lấy nó, bạn có thể thêm nó vào head.php thường là đường dẫn là: samples / templatename / tpls / blocks / head.php <link rel = "Stylesheet" href = "/ samples / templatename / css / custom.css "type =" text / css "/>
Tony M

Câu trả lời:


22

Tại sao sử dụng CSS ghi đè?

Luôn luôn là một ý tưởng tốt để tách các kiểu CSS của bạn khỏi kiểu mẫu hiện có, nếu bạn đang sử dụng mẫu Joomla dựng sẵn.

  • Nó dễ bảo trì hơn
  • Thay đổi của bạn sẽ không bị mất nếu bạn nâng cấp mẫu
  • Bạn có thể dễ dàng sao chép / di chuyển các sửa đổi sang mẫu khác hoặc trang web khác.

CSS ghi đè hoạt động như thế nào?

CSS có nghĩa là "Cascading Style Sheets", "Cascading" trong ngữ cảnh này có nghĩa là bởi vì nhiều quy tắc biểu định kiểu có thể áp dụng cho một đoạn HTML cụ thể, quy tắc được sử dụng được chọn bằng cách xếp tầng từ quy tắc chung hơn cho quy tắc cụ thể được yêu cầu ( quy tắc cụ thể nhất được chọn) hoặc dựa trên thứ tự của quy tắc cho bất kỳ yếu tố nào (quy tắc cuối cùng được tìm thấy được chọn).

Miễn là tệp CSS tùy chỉnh của bạn được tải sau tệp CSS mẫu mặc định, bạn có thể thêm các kiểu của riêng mình để ghi đè các phần tử cụ thể khi cần (có một số trường hợp ngoại lệ, nhiều hơn về điều đó bên dưới).

Sử dụng chung

Để tải một biểu định kiểu tùy chỉnh trong <head>thẻ Joomla , có thể thêm đoạn mã sau vào index.phptệp của mẫu của bạn ( YOURDOMAIN.COM/templates/yourtemplate/index.php), ngay trước </head>thẻ kết thúc để đảm bảo tệp của bạn được tải sau cùng.

JHtml::_('stylesheet', JUri::root() . 'templates/' . $this->template . '/css/custom.css');

(Tệp CSS có thể có bất kỳ tên nào và không phải nằm trong / css / thư mục con, nhưng nó sạch hơn theo cách đó.)

Cũng có thể thêm một <link>thẻ bình thường , nhưng điều này kém linh hoạt hơn so với tùy chọn được đề cập ở trên:

<link rel="stylesheet" href="/joomla//templates/mytemplate/css/custom.css" type="text/css" />

!Quan trọng

Một số tiện ích mở rộng có thể tải kiểu CSS của chúng sau của bạn (hoặc thậm chí thêm kiểu trực tiếp trong tệp index.php), do đó ghi đè lên phần ghi đè của bạn. Điều này thường có thể được giải quyết bằng cách thêm !importantvào phong cách của bạn, ví dụ.h1{color:red!important;}

Sử dụng trong các khung khác nhau

Bây giờ là phần thú vị: Nhiều khung mẫu có khả năng người dùng muốn thay đổi mẫu của họ, do đó thêm một cách dễ dàng để bao gồm các phần ghi đè CSS của bạn. Dưới đây là một số phương pháp được sử dụng:

Cổng RocketTheme 4

Các mẫu RocketTheme được cung cấp bởi Khung Gantry và một tệp CSS tùy chỉnh sẽ được tải tự động nếu tìm thấy. Tệp CSS phải được đặt trong /templates/yourtemplate/css/thư mục và tên phảiYOURTEMPLATEFOLDER-custom.css.

Ví dụ: Nếu bạn đang sử dụng Afterburner 2mẫu miễn phí của họ , thư mục mẫu mặc định là /templates/rt_afterburner2/. Thêm một tệp có tên rt_afterburner-custom.css(carefull với dấu gạch dưới và dấu gạch nối) vào / css / thư mục con và nó sẽ được tải tự động bởi khung Gantry.

Hình 5

Các mẫu hình dạng 5 xuất xưởng với một custom.csstệp trống trong / css / thư mục con của mẫu của bạn. Chỉ cần thêm kiểu của bạn vào tệp này và chúng sẽ được bao gồm trong bố cục của bạn.

Chuyên gia

Các mẫu của Gavick Pro xuất xưởng với một overrides.csstệp trống trong thư mục / css / thư mục con. Nhưng lưu ý rằng tệp này không được tải theo mặc định, bạn phải kích hoạt Override CSStrong tab Cài đặt nâng cao trong cài đặt mẫu.

Joomla tỏa sáng

Tạo một tệp CSS tùy chỉnh trong / css / thư mục con của mẫu của bạn, vd custom.cssvà chỉ định tên tệp tại Extensions -> Templates -> [template name] -> SEO & System -> Custom CSS/JS File(s).

Khung T3

Các mẫu dựa trên Khung T3 có thể / có thể không bao gồm custom.csstệp trong / css / thư mục con của mẫu của bạn (chỉ cần tạo nó nếu không có), nhưng khi có mặt, tệp sẽ được tải sau bất kỳ tệp CSS nào khác.

Khung Warp

Các mẫu dựa trên Warp Framework sẽ tự động tải custom.csstệp được tìm thấy trong / css / thư mục con. Các tệp CSS bổ sung có thể được tải bằng cách thêm

$this->warp->stylesheets->add('css:yourcssfile.css');

vào tập tin /layouts/template.config.php.


2
Đối với việc sử dụng chung, tôi sẽ đề nghị sử dụng JHtml::_('stylesheet', 'path/to/file')thay vì addStyleSheetnhư đã tranh luận về một câu trả lời khác :) Khác với điều đó, câu trả lời đẫm máu. Chắc chắn sẽ có ích cho mọi người
Lodder

Cảm ơn bạn, @Lodder. Tôi hy vọng thông tin này có thể hữu ích cho mọi người. Về đề nghị của bạn, tôi đã đọc các cuộc tranh luận. Làm thế nào có thể JHtml::_được sử dụng với $this->template?
johanpw

2
JHtml::_('stylesheet', JUri::root() . 'templates/' . $this->template . '/css/style.css');
Lodder

3
Trên thực tế, các chủ đề tên lửa mới hơn sử dụng LESS. Tất cả bạn phải làm là tạo một tệp trong thư mục LESS có tên là template-custom.less và đặt mã của bạn vào đó. Sau đó, bạn có thể thưởng thức các thủ thuật mà LESS mang lại. Warp 7 cho phép bạn tạo "phong cách" của riêng mình trong thư mục kiểu và bạn thực sự có thể dán tệp custom.css trong thư mục THAT (bên trong thư mục css của chính nó). Bằng cách đó, mỗi phong cách có thể có CSS ​​tùy chỉnh riêng. Nó cũng làm cho nó đứng lên để nâng cấp mẫu. Sử dụng tệp custom.css mặc định có nghĩa là nó bị ghi đè mỗi khi bạn nâng cấp chủ đề.
Brian Peat

1
Câu trả lời tuyệt vời và rất hữu ích! Một tùy chọn khác bạn có thể muốn thêm cho các mẫu / khuôn khổ mà không bao gồm việc cung cấp cho các tập tin tùy chỉnh CSS là việc sử dụng một phần mở rộng của bên thứ ba như CSSConfig extensions.joomla.org/extensions/style-a-design/templating/... mà được thiết kế cho mục đích chính xác này.
Neil Robertson

7

Joomla 3.5+ (mẫu Protostar)

Kể từ Joomla 3.5, bạn có thể tạo tệp được gọi user.cssvà đặt tệp vào:

mẫu / protostar / css / user.css

Lưu ý: tên tệp phảiuser.css


Mẫu protostar sẽ kiểm tra nếu:

  • Các tập tin tồn tại
  • Kích thước tập tin là > 0.

Nếu cả hai điều kiện được đáp ứng, nó sẽ tự động nhập tệp này cho bạn.

Xem Yêu cầu kéo trên Github


5

Khung Helix ( JoomShaper )

Một khung mẫu Joomla khác, tạo điều kiện cho quy trình công việc tùy biến.

Các mẫu Helix Framework cũng cung cấp một cách dễ dàng để thêm các kiểu tùy chỉnh của bạn với 2 phương thức thuận tiện.

  1. Trong bảng điều khiển mẫu trong phụ trợ, có trường CSS tùy chỉnh. Tại đây, bạn có thể nhập css của mình, phần tử này sẽ được thêm dưới dạng phần tử kiểu trong phần đầu của trang và do đó, nó cũng sẽ được ưu tiên hơn các tệp css bên ngoài khác. Tất nhiên tùy chọn này không phải là lý tưởng, nếu bạn dự định viết một loạt các dòng css, do đó có một phương pháp thứ hai.

  2. Giống như nhiều khung mẫu khác, Helix cũng cung cấp khả năng tạo tệp custom.css của riêng bạn. Đơn giản chỉ cần tạo nó và đặt nó trong thư mục css của mẫu. Mẫu sẽ phân tích cú pháp và sẽ đưa nó vào phần đầu của các trang của bạn.


3

Johanpw đã thực hiện một công việc rất tốt với câu trả lời của mình cho câu hỏi của riêng mình ... đặc biệt là về phần ghi đè css cho nhiều mẫu thương mại.

Tôi chỉ muốn thêm hai xu của tôi ở đây ...

Như Johanpw đã nhấn mạnh, tạo CSS ghi đè là cách thực hành được khuyến nghị. Giữ CSS tùy chỉnh của bạn trong một tệp duy nhất mà bạn biết rằng nó sẽ không bị xóa hoặc ghi đè sau khi cập nhật là điều cần thiết.

Điều này rất quan trọng cần nhớ cho tất cả các phần mở rộng Joomla. Đừng cố gắng thay đổi tệp css lõi của mô-đun hoặc thành phần. Thay vào đó, tốt hơn hãy thử tạo tệp template.css tùy chỉnh của riêng bạn, tải tệp cuối cùng và trong đó tạo tất cả các kiểu tùy chỉnh của bạn.

Trong trường hợp mẫu thương mại không cung cấp cách thêm ghi đè css thì bạn có thể sử dụng tiện ích mở rộng như thế này: Thêm CSS tùy chỉnh , cho phép chính xác điều này. Để tạo tập tin ghi đè css tùy chỉnh của bạn và tải nó lần cuối.

Một tùy chọn khác tôi thường làm trong các trang web mà tôi quản lý, là sửa đổi mẫu và thêm liên kết của riêng tôi vào tệp custom.css của tôi , ngay trước thẻ đóng đầu của mẫu. Đây là một sửa đổi nhỏ, dễ nhớ và khôi phục, mà tôi ổn để xử lý, khi có bản cập nhật mẫu.


3

Cổng 5 (RocketTheme)

Gantry 5 là phiên bản mới nhất của khung mẫu phổ biến và nó cung cấp rất nhiều tính năng và khả năng mới.

Về ghi đè CSS, có rất nhiều tùy chọn và tính linh hoạt.

Lấy chủ đề Hydrogen được phát hành dưới dạng mẫu Gantry 5 tiêu chuẩn, nó cung cấp một thư mục có tên tùy chỉnh.

Thư mục này được cung cấp cho người dùng để đặt các tệp / ghi đè tùy chỉnh của mình cho khung / khuôn cổng (để không bị nhầm lẫn với các phần ghi đè của mẫu Joomla, vẫn còn trong thư mục mẫu / html). Bạn có thể đặt trong đó tập tin custom.css. Sau đó, thông qua Bảng quản trị mẫu Gantry, bạn có thể tùy chỉnh bố cục mẫu của mình và sử dụng Hạt nhân CSS / JS tùy chỉnh (tính năng cổng 5 mới), để thêm custom.css của bạn vào mẫu. Gantry 5 cũng cung cấp các liên kết được gọi là luồng , (như các phím tắt), để dễ dàng liên kết tệp custom.css của bạn.

Vì vậy, từ bên trong hạt nguyên tử, bạn sẽ liên kết nó bằng cách sử dụng:

gantry-theme://custom/thing.css

Các gantry-theme://phím tắt, sẽ luôn luôn đề cập đến thư mục mẫu cổng hiện tại.

Sử dụng phương pháp này là một cách hiệu quả để thêm custom.css cho các phác thảo mẫu cụ thể của mẫu gantry5 của bạn.

Cách tiếp cận thứ hai, hoạt động trên toàn cầu cho toàn bộ mẫu cổng, bằng cách thêm tệp custom.scss , bên trong:

template_directory/custom/scss/custom.scss

Làm như vậy, gantry5 sẽ luôn tải và biên dịch tệp scss này và mọi quy tắc css bạn đã áp dụng sẽ ghi đè lên các quy tắc mặc định của mẫu.

Bên trong tệp scss bạn hoàn toàn ổn khi sử dụng SCSS hoặc đơn giản là css. Trình biên dịch có thể biên dịch cả hai.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.