Thẻ <style> nội tuyến so với thuộc tính css nội tuyến


80

Phương pháp ưa thích để đặt thuộc tính CSS là gì?

Thuộc tính kiểu nội tuyến:

<div style="width:20px;height:20px;background-color:#ffcc00;"></div>

Thuộc tính kiểu trong <style>...</style>thẻ:

<style>.gold{width:20px;height:20px;background-color:#ffcc00;}</style><div class="gold"></div>

5
Một ưu điểm khác của thẻ định kiểu, thậm chí còn hơn thế nữa với biểu định kiểu bên ngoài, là khả năng tái sử dụng. Bây giờ nó là một lớp, bạn có thể áp dụng nó cho nhiều phần tử!
TheZ

Câu trả lời:


94

Quy tắc kiểu có thể được đính kèm bằng cách sử dụng:

  • Tệp bên ngoài
  • Thẻ kiểu trong trang
  • Thuộc tính kiểu nội tuyến

Nói chung, tôi thích sử dụng các biểu định kiểu được liên kết vì chúng:

  • có thể được lưu vào bộ nhớ cache của trình duyệt để thực hiện; và
  • dễ dàng hơn rất nhiều để duy trì cho một quan điểm phát triển.

Tuy nhiên, câu hỏi của bạn là hỏi cụ thể về kiểu stylethẻ so với kiểu nội tuyến. Thích sử dụng stylethẻ, trong trường hợp này, vì nó:

  • cung cấp sự tách biệt rõ ràng giữa đánh dấu và tạo kiểu;
  • tạo ra đánh dấu HTML sạch hơn; và
  • hiệu quả hơn với các bộ chọn để áp dụng quy tắc cho nhiều phần tử trên một trang, cải thiện việc quản lý cũng như làm cho kích thước trang của bạn nhỏ hơn.

Các phần tử nội tuyến chỉ ảnh hưởng đến phần tử tương ứng của chúng.

Một sự khác biệt quan trọng giữa stylethẻ và thuộc tính nội tuyến là tính cụ thể. Tính cụ thể xác định thời điểm một kiểu đè lên kiểu khác. Nói chung, các kiểu nội tuyến có độ đặc hiệu cao hơn.

Đọc CSS: Specificity Wars để có cái nhìn thú vị về chủ đề này.

Tôi hy vọng rằng sẽ giúp!


1
Dòng đó về việc không thể xếp tầng theo kiểu nội tuyến khiến tôi nghĩ, đây không phải là xếp tầng về mặt kỹ thuật sao? <div style="border:1px solid #707070; border-left:0">
TheZ

@TheZ Thật vậy, tôi có thể sử dụng thuật ngữ "thác nước" kém. Tôi luôn thấy nó như một quy tắc chảy vào một quy tắc khác, thường là từ các yếu tố khác. Về cơ bản là kế thừa. Tôi sẽ phải đọc lại định nghĩa để đảm bảo rằng tôi đang sử dụng thuật ngữ đúng. Ý tôi muốn nói trong câu trả lời của mình là kiểu nội tuyến chỉ ảnh hưởng đến phần tử mà chúng có mặt, không có gì khác.
jmbertucci

Ngoài ra, một điểm cộng cho khối kiểu trang là nó đơn giản hóa việc di chuyển kiểu sang trang CSS bên ngoài.
Bể bơi

@jmbertucci: Tôi sẽ không thay đổi chủ đề của câu hỏi. Làm cách nào bạn có thể áp dụng các quy tắc như @importhoặc @font-facetừ một thuộc tính kiểu? Tôi cũng đang nói điều này bởi vì tôi đang ở trong một trường hợp, tôi được phép một thuộc tính html style=""nhưng không phải một <style></style>thẻ.
dùng2284570

Là một phụ lục (vì tôi vừa tìm thấy cái này từ tìm kiếm của Google) - với HTML5 hiện có một scopedthuộc tính (mặc dù nó chưa được hỗ trợ rộng rãi) cho phép bạn sử dụng <style> ... </style>các khối nội tuyến - ví dụ: developer.mozilla.org/en-US/docs/ Web / HTML / Phần tử / kiểu
CD001

20

Đây là một khía cạnh có thể quy định sự khác biệt:

Nếu bạn thay đổi kiểu của một phần tử trong JavaScript, bạn đang ảnh hưởng đến kiểu nội tuyến. Nếu đã có một kiểu ở đó, bạn sẽ ghi đè nó vĩnh viễn. Tuy nhiên, nếu kiểu được xác định trong trang tính bên ngoài hoặc trong <style>thẻ, thì hãy đặt kiểu nội dòng để ""khôi phục kiểu từ nguồn đó.


10

Nó phụ thuộc.

Điểm chính là tránh lặp lại mã.

Nếu cùng một mã cần được sử dụng lại 2 lần trở lên và phải đồng bộ khi thay đổi, hãy sử dụng bảng định kiểu bên ngoài.

Nếu bạn chỉ sử dụng nó một lần, tôi nghĩ nội tuyến là ok.


8

Để trả lời câu hỏi trực tiếp của bạn: cả hai đều không phải là phương pháp ưa thích. Sử dụng một tệp riêng biệt.

Kiểu nội tuyến chỉ nên được sử dụng như một phương sách cuối cùng hoặc được đặt bởi mã Javascript. Các kiểu nội tuyến có mức độ cụ thể cao nhất, vì vậy hãy ghi đè các bảng định kiểu thực tế của bạn. Điều này có thể khiến họ khó kiểm soát (bạn cũng nên tránh !importantvì lý do tương tự).

<style>Khối được nhúng không được khuyến nghị, vì bạn mất khả năng của trình duyệt để lưu biểu định kiểu vào bộ nhớ cache trên nhiều trang trên trang web của mình.

Vì vậy, tóm lại, nếu có thể, bạn nên đặt các kiểu của mình vào một tệp CSS riêng biệt.


4

Từ quan điểm về khả năng bảo trì, việc quản lý một mục trong một tệp sẽ đơn giản hơn nhiều so với quản lý nhiều mục trong có thể nhiều tệp.

Việc tách biệt phong cách sẽ giúp cuộc sống của bạn dễ dàng hơn nhiều, đặc biệt khi nhiệm vụ công việc được phân bổ giữa các cá nhân khác nhau. Khả năng tái sử dụng và tính di động sẽ giúp bạn tiết kiệm rất nhiều thời gian trên đường.

Khi sử dụng kiểu nội tuyến, kiểu đó sẽ ghi đè mọi thuộc tính bên ngoài được đặt.


3

Tôi đồng ý với quan điểm của đa số rằng các bảng định kiểu bên ngoài là phương pháp ưa thích.

Tuy nhiên, đây là một số ngoại lệ thực tế:

  • Hình ảnh nền động. CSS stylesheet là các tệp tĩnh, vì vậy bạn cần sử dụng kiểu nội tuyến để thêm kiểu động (từ cơ sở dữ liệu, CMS, v.v.) background-image.

  • Nếu một phần tử cần được ẩn khi trang tải, việc sử dụng biểu định kiểu bên ngoài cho điều này là không thực tế, vì sẽ luôn có một số độ trễ trước khi biểu định kiểu được xử lý và phần tử sẽ hiển thị cho đến khi điều đó xảy ra. style="display: none;"là cách tốt nhất để đạt được điều này.

  • Nếu một ứng dụng sẽ cung cấp cho người dùng quyền kiểm soát tốt đối với một giá trị CSS cụ thể, chẳng hạn như màu văn bản, thì có thể cần thêm giá trị này vào các stylephần tử nội tuyến hoặc <style></style>khối trong trang . Ví dụ: style="color:#{{ page.color }}"hoặc<style> p.themed { color: #{{ page.color }}; }</style>


0

Bất cứ khi nào có thể, bạn nên sử dụng lớp .myclass{}và mã định danh #myclass{}, vì vậy hãy sử dụng tệp css hoặc thẻ chuyên dụng <style></style>trong html . Kiểu nội tuyến là tốt để thay đổi tùy chọn css động bằng javascript.


0

Có thể có nhiều lý do khác nhau để chọn cách này hơn cách khác.

  • Nếu bạn cần chỉ định css cho các phần tử được tạo theo chương trình (ví dụ: sửa đổi css cho các hình ảnh có kích thước khác nhau), thì việc sử dụng css nội tuyến có thể dễ bảo trì hơn.
  • Nếu một số css chỉ hợp lệ cho trang hiện tại, bạn nên sử dụng thẻ script hơn là một tệp .css riêng biệt. Sẽ rất tốt nếu trình duyệt không phải thực hiện quá nhiều yêu cầu http.

Nếu không, như đã nêu, tốt hơn là sử dụng một tệp css riêng biệt.


0

Bạn có thể đặt CSS bằng ba cách khác nhau như được đề cập bên dưới: -

1.External style sheet
2.Internal style sheet
3.Inline style

Cách ưa thích / lý tưởng để thiết lập kiểu css đang sử dụng làm bảng định kiểu bên ngoài khi kiểu được áp dụng cho nhiều trang. Với biểu định kiểu bên ngoài, bạn có thể thay đổi giao diện của toàn bộ trang Web bằng cách thay đổi một tệp.

cách sử dụng mẫu có thể là: -

<head>
    <link rel="stylesheet" type="text/css" href="your_css_file_name.css">
</head>

Nếu bạn muốn áp dụng một kiểu duy nhất cho một tài liệu thì bạn có thể sử dụng Bảng định kiểu nội bộ.

Không sử dụng biểu định kiểu nội tuyến, vì nó trộn nội dung với bản trình bày và mất nhiều lợi thế.

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.