Tại sao lại đặt trước tên tập tin là _ _ hay hoặc _ _ trong tập tin scss / css?


147

Tại sao đặt _trước tên tệp trong scss?

_filename.scss- Tại sao nó cần _?

Câu trả lời:


147

_ (Gạch dưới) là một phần của scss. Điều đó có nghĩa là biểu định kiểu sẽ được nhập (@import) sang biểu định kiểu chính tức là style.scss. Ưu điểm của việc sử dụng partials là bạn có thể sử dụng nhiều tệp để sắp xếp mã của mình và mọi thứ sẽ được biên dịch trên một tệp duy nhất.


3
Nhưng import '_file';import '_file';làm điều tương tự phải không?
tom10271

20
@aokaddaoc có vẻ như bạn đã viết cùng một dòng mã :)
Amit

20
Oh cảm ơn bạn đã chỉ ra sai lầm của tôi. "nhưng import '_file';import 'file';làm điều tương tự phải không?"
tom10271

5
Nếu tôi cấu trúc các tệp của mình theo cách mà tôi chỉ gửi một tệp đến trình biên dịch / tiền xử lý của mình, tại sao các tệp của tôi lại được xử lý trước _? Tôi đang xem xét xóa dấu gạch dưới khỏi tên tệp của tôi. Việc một tệp Sass có phải là một phần (tức là một đoạn mã có thể nhập được hay không) sẽ phụ thuộc vào vị trí của nó trong kiến ​​trúc dự án của bạn, chứ không phải cách tệp được đặt tên.
ESR

1
@ESR: Đồng ý, tính năng này cảm thấy hơi lỗi thời trong môi trường phát triển web hiện đại. Bạn chắc chắn không cần _s nếu bạn có cấu trúc dự án của bạn một cách hợp lý.
Chris Jaynes

55

Một tệp sass bắt đầu bằng dấu gạch dưới là một phần. Đó là một cách tốt để giữ cho phong cách của bạn tách thành các phần hợp lý. Tất cả các tệp này được hợp nhất khi biên dịch khi bạn sử dụng @import.

Từ hướng dẫn ngôn ngữ Sass:

Bạn có thể tạo các tệp Sass một phần có chứa các đoạn CSS nhỏ mà bạn có thể đưa vào các tệp Sass khác. Đây là một cách tuyệt vời để mô đun hóa CSS của bạn và giúp giữ mọi thứ dễ dàng hơn để duy trì. Một phần chỉ đơn giản là một tệp Sass được đặt tên với dấu gạch dưới hàng đầu. Bạn có thể đặt tên nó là _partial.scss. Gạch dưới cho Sass biết rằng tệp chỉ là một phần của tệp và nó không nên được tạo thành tệp CSS. Sass partials được sử dụng với chỉ thị @import.

http://sass-lang.com/guide


13

Khi bạn bao gồm "_" phía trước tên tệp, nó sẽ không được tạo thành CSS trừ khi bạn nhập nó vào một tệp sass khác không phải là một phần.

giả sử cấu trúc thư mục của bạn là như thế này

/scss
 style.scss
 _list.scss
/css

nếu bạn chạy lệnh

sass --watch scss:css

chỉ các tệp style.css và style.css.map sẽ được tạo, trình biên dịch sass sẽ bỏ qua _list.scss mà không chuyển đổi nội dung của nó thành tệp CSS.

/scss
 style.scss
 _list.scss
/css
 style.css
 style.css.map

cách duy nhất mà bạn có thể sử dụng partials là nhập chúng vào tệp .scss khác với

@import 'list.scss';

nếu bạn xóa '_' trước _list.scss thì kết quả của lệnh sẽ là

/scss
 style.scss
 list.scss
/css
 style.css
 style.css.map
 list.css
 list.css.map

Mục đích chính của việc sử dụng partials là chia mã CSS của chúng tôi thành nhiều phần dễ bảo trì hơn. Hi vọng điêu nay co ich. Cảm ơn.


2
Đây là câu trả lời đúng. Nhưng, bạn cũng không đề cập đến trường hợp đặc biệt của _index.scss: sass-lang.com/documentation/at-rules/import#index-files
vào

11

Các tệp có _ (gạch dưới) bị bỏ qua bởi trình biên dịch. Tuy nhiên, tất cả các tệp đó được nhập vào một tệp SCSS chính (ví dụ: style.scss) thực sự là tệp được biên dịch (nó không có _ (gạch dưới) trong tên của nó)

Mục tiêu cuối cùng là chỉ biên dịch một tệp SCSS và chỉ có một tệp CSS là kết quả của nó, có nhiều lợi thế khác nhau.


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.