2011-06-24 48 views
7

tôi nhận thấy rằng tất cả các trình duyệt ám chỉ rằng border-style: inset; sở hữu khác nhau, vì vậy tôi có hai câu hỏi:Thuật toán chèn đường viền CSS được chấp nhận nhất là gì?

  1. Tại sao các trình duyệt làm cho nó khác nhau? Làm thế nào có thể có rất nhiều thuật toán khác nhau cho điều này? Hầu hết tất cả, một số trình duyệt nhìn sai với nó!

  2. Vì tôi không thể dựa vào thuộc tính inset làm việc, tôi đã tự hỏi thuật toán "đúng" là gì? Tôi thường đi 16 nhẹ trên đầu trang/trái và 16 sẫm màu ở phía dưới/phải (tức. #666666 là nền, vì vậy #767676 là top/trái và #565656 là đáy/phải)

Tôi cần phải biết những gì để sử dụng (nói chung) bởi vì tôi đang gặp rắc rối làm cho phong cách của tôi inset, và tôi rõ ràng không thể sử dụng inset đúng vì vậy tôi phải tự thay đổi màu sắc. Đôi khi, tuy nhiên, nó chỉ nhìn không đúng (nếu nó quá tối). Có phải có một thuật toán tốt ra khỏi đó cho điều này?

Tôi đã tìm kiếm tài nguyên web về vấn đề này (chẳng hạn như công cụ "màu sắc mà biên giới của bạn cần để làm công cụ này") hoặc bất kỳ thứ gì có thể hữu ích và không tìm thấy gì.

Hãy suy nghĩ theo cách này: Nếu ai đó đang làm một cái gì đó trong chương trình vẽ và không có nút hiệu ứng inset, màu nào sẽ được viền bốn màu, màu chính là _____?

phải có một thuật toán chung cho điều này mà tôi không thể tìm thấy ...

Edit: Tôi muốn chỉ trở lại ví dụ của tôi sử dụng một chương trình đồ họa mà cần một phong cách inset. Ai đó có thể cho tôi một ví dụ về những gì họ sẽ sử dụng cho việc này không? (Là một phần của câu hỏi tốt hơn chỉ đạo trên các nhà thiết kế ngăn xếp?)

+2

Về việc tìm kiếm một "thuật toán tổng quát" - bạn có thể làm một bài kiểm tra trường hợp và so sánh nó trong tất cả IE8/9, Firefox, Chrome, Safari, Opera. Sử dụng hành vi "phổ biến nhất" hoặc "trung bình". Bạn cũng có thể xem xét mã nguồn của Firefox hoặc WebKit để xem chính xác cách họ đang thực hiện nó. – thirtydot

+0

Tôi muốn chuyển đổi thành màu thành HSL và điều chỉnh L bằng 10 hoặc 15% ... phát xung quanh đến mức có vẻ đẹp. Điểm là bạn muốn nó trông nhẹ hơn trên mặt, tối hơn trên khác, vì vậy điều chỉnh * độ sáng *, không phải là RGB. – mpen

+0

Bạn biết đấy, tôi đã nghĩ về việc đó, nhưng tôi tự hỏi tại sao "inset" lại cần phải trông khác? Làm thế nào có thể inset nhìn "tốt hơn" trong windows, mac, linux, bất cứ điều gì? Tôi không hiểu cách thuật toán có thể khác ... – bdrelling

Trả lời

5

Trích:"1. Tại sao các trình duyệt làm cho nó khác đi?"

Tôi chắc chắn mỗi trình duyệt thực hiện điều này một cách khác nhau bởi vì họ cho rằng trình duyệt của họ trông đẹp nhất. IE có thể làm cho nó trông tốt trong Windows. Safari đang làm cho chúng phù hợp với giao diện của Mac OS. Firefox phù hợp với các yếu tố khác của trình duyệt, vv (và như đã nêu bởi thirtydot, nó chưa được chuẩn hóa.)

Trích:"2. Kể từ khi tôi không thể dựa vào thuộc tính inset làm việc, Tôi đã tự hỏi 'thuật toán' thích hợp là gì? "

Bạn có thể thử đảo ngược kỹ thuật nếu điều đó quan trọng. Thiết lập trang thử nghiệm và gọi nó trong trình duyệt. Sử dụng tiện ích con mắt nhỏ giọt/chọn màu để chọn các màu khác nhau. Với đủ mẫu, bạn sẽ có thể tìm thấy mẫu cho một trình duyệt đó.

Trích:"Cần phải có một thuật toán chung cho điều này mà tôi không thể tìm thấy ..."

Không nếu mọi trình duyệt làm nó khác đi.Mỗi người sẽ có thuật toán riêng của họ.


EDIT để giải quyết OP của theo dõi:

Trích:"Edit:. Tôi muốn chỉ trở lại ví dụ của tôi sử dụng một chương trình đồ họa mà cần một phong cách inset Can ai đó cho tôi một ví dụ về những gì họ sẽ sử dụng cho điều này? (Đây có phải là một phần của câu hỏi hướng dẫn tốt hơn về ngăn xếp thiết kế không?) "

Bạn dường như đang tìm kiếm một đặc điểm c trả lời nơi không tồn tại. Tôi không thể cung cấp cho bạn một ví dụ về những gì tôi sử dụng vì các chương trình đồ họa hiện đại (Photoshop) sẽ làm điều này cho tôi và sau đó cung cấp cho tôi đủ các tùy chọn, khi kết hợp, cung cấp hàng triệu kết quả; màu đường viền, màu sắc nổi bật, màu bóng, độ sâu, góc, độ dày, hồ sơ, v.v. Hỏi 20 người những gì họ nghĩ là inset "hoàn hảo" và bạn sẽ nhận được 20 câu trả lời khác nhau (ý kiến ​​thực sự) và sau đó chúng tôi quay lại lý do nó trông khác nhau trong mỗi trình duyệt (xem # 1 ở trên). Vì vậy, có, trong bối cảnh của "lập trình" câu hỏi, phần cuối cùng của OP của bạn có lẽ là off-topic.

bổ sung Suy nghĩ ngẫu nhiên:

Tại sao border-style không Chuẩn? IMHO, tôi nghĩ rằng tài sản này chỉ đơn giản là không được sử dụng đủ để đảm bảo bất kỳ nỗ lực lớn để chuẩn hóa hoặc có lẽ có nhiều bất đồng về điều này trong cộng đồng tiêu chuẩn. Tôi tưởng tượng rằng tất cả các thuộc tính CSS yêu cầu Tiêu chuẩn hóa được ưu tiên trong một số thời trang (tính phổ biến, hữu ích?) Và điều này chỉ chưa thực hiện việc cắt giảm hoặc đưa mọi người lại với nhau. Cá nhân, tôi nghĩ rằng một tài sản như thế này được gắn quá chặt chẽ với các xu hướng luôn thay đổi. tức là - 10 năm trước, chúng tôi thường thấy rất nhiều bàn có viền "nổi" rất dày. Những ngày này, nhiều thiết kế sử dụng ít biên giới hoặc viền rất mỏng, nếu có. Một lần nữa, đây chỉ là vấn đề về hương vị và ý kiến.

+0

Tôi đánh giá cao câu trả lời của bạn. Họ giải quyết một số vấn đề của tôi, nhưng tôi vẫn chưa tìm thấy một thuật toán duy nhất trên insets, bất cứ nơi nào. Thậm chí không có hướng dẫn trực tuyến. Đây là loại tài nguyên tôi đang tìm kiếm ... ngay cả khi nó giải thích 1.000 kiểu có thể, loại tài nguyên đó sẽ hữu ích. – bdrelling

+0

@Aerodynamo: Và vì nhiều lý do tôi đã trình bày, tôi không tin rằng bạn sẽ tìm thấy nhiều thứ. Tôi nghĩ lý do lớn nhất là không có nhu cầu cho một thứ như vậy; nó đã được xây dựng trong Photoshop, vậy tại sao mọi người lại cần thông tin như vậy? Có thể bạn sẽ phải làm những gì các lập trình viên làm trình duyệt và đưa ra thuật toán của riêng bạn, một trong những bạn cảm thấy là dễ nhìn nhất. – Sparky

3

Tôi có một câu trả lời cho điều này:

  1. Tại sao các trình duyệt làm cho nó khác nhau? Làm thế nào có thể có quá nhiều thuật toán khác nhau cho điều này? Hầu hết tất cả tất cả, một số trình duyệt nhìn sai với nó!

Xem:http://www.w3.org/TR/CSS21/box.html#border-style-properties

Màu sắc của biên giới rút ra cho các giá trị của 'rãnh', 'núi', 'inset' và 'đầu' phụ thuộc vào thuộc tính màu biên giới của phần tử, nhưng UA có thể chọn thuật toán riêng của chúng để tính màu thực tế được sử dụng. Đối với trường hợp , nếu 'màu đường viền' có giá trị 'bạc', thì UA có thể sử dụng độ dốc màu từ trắng đến màu xám đậm để biểu thị đường biêndốc.

Đó là lý do triển khai khác nhau - bởi vì nó không được tiêu chuẩn hóa.

2

tôi sẽ nói cho phản ứng nhẹ thêm 20% cho mỗi giá trị rgb, và cho mặt tối xóa 20% so với mỗi giá trị RGB ..

+0

Tôi sẽ thử điều này và xem nó có giúp ích gì không. – bdrelling

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