tôi xem presentation about object oriented css này, nhưng tôi nghĩ tôi hoặc là không hiểu nó một cách chính xác hoặc không hiểu được lợi ích của việc sử dụng OO CSS:Object hướng CSS
HTML mẫu:
<div class="border-1 bg-2 color-1 font-1">
</div>
Ví dụ CSS :
/* borders */
.border-1 { border: 1px solid red; }
/* backgrounds: */
.bg-2 { background: yellow; }
/* other sections */
Tôi thấy một lợi thế trong việc có thể thay đổi kiểu cho nhiều phần tử một cách nhanh chóng, chẳng hạn, có thể chuyển đổi bảng màu sẽ rất hữu ích.
Nhưng thực tế, bạn đang xác định kiểu/xem bên trong HTML hoặc ít nhất là một phần của nó. Tất nhiên, nó tốt hơn là sử dụng thuộc tính style
, bởi vì bạn vẫn có thể trao đổi kiểu cho một tập hợp các nhóm.
Vấn đề là bạn định nghĩa các nhóm kiểu bên trong HTML, nhưng tôi biết rằng bạn nên tạo các nhóm "hợp lý" bên trong HTML (ví dụ: class="nav-item"
/class="btn submit-btn"
) và CSS hoàn toàn áp dụng kiểu đó và xác định yếu tố nào thuộc về nhau từ quan điểm "phong cách" (ví dụ: .nav-item, .submit-btn { background: red; }
).
Có lẽ tôi hoàn toàn hiểu lầm khái niệm. Tuy nhiên, tôi vẫn không biết một cách tốt để xây dựng CSS của tôi.
@madr, bạn đã thử [Less] (http://lesscss.org/) hoặc [Sass] (http://sass-lang.com/)? Chúng là một giải pháp tốt hơn cho vấn đề này hơn là cố gắng định hướng đối tượng bằng sừng giày thành thứ gì đó và sẽ không bao giờ hướng đối tượng. –
@asbjomu Vì không có lý do gì để không, tôi kết hợp các bộ tiền xử lý với OOCSS để có được tốt nhất từ cả hai. Nhóm của tôi thực sự hài lòng với thỏa thuận làm việc này. – madr
@ AsbjørnUlsberg, nói về kinh nghiệm của tôi, cho một người dùng giao diện người dùng chuyển sang scss/sass mà không có kiến thức về OOCSS, sẽ rất tốt, lý do chính khiến OOCSS tạo ra một dev nghĩ khi nào anh ta nên trừu tượng một phần nhất định CSS là một thành phần độc lập và nếu bạn không tự hỏi mình câu hỏi này với tư cách là một nhà phát triển CSS, thì việc chuyển sang SCSS sẽ không làm cho người đó trở nên tốt hơn! lý do này một mình có thể tiết kiệm rất nhiều mã bloat !! –