CSS đã giải quyết vấn đề gì?
Ahmad Shadeed là một nhà thiết kế UX và nhà phát triển front-end đến từ Palestine. Anh ấy thích làm việc với các dự án thiết kế và phát triển front-end đầy thách thức. Anh ấy đã viết một … Thông tin thêm về Ahmad ↬ Show
Bản tin emailEmail (đập vỡ) của bạn
Mẹo hàng tuần về front-end & UX
Khi triển khai giao diện người dùng trong trình duyệt, bạn nên giảm thiểu những khác biệt và sự cố đó bất cứ khi nào có thể để giao diện người dùng có thể dự đoán được. Rất khó để theo dõi tất cả những khác biệt đó, vì vậy tôi đã tập hợp một danh sách các vấn đề phổ biến, cùng với các giải pháp của chúng, như một hướng dẫn tham khảo hữu ích khi bạn đang thực hiện một dự án mới Hãy bắt đầu nào 1. Đặt Lại Hình Nền Của Phần Tử Khi thêm một nút, hãy đặt lại nền của nó, nếu không, nó sẽ trông khác trên các trình duyệt. Trong ví dụ bên dưới, cùng một nút được hiển thị trong Chrome và Safari. Cái sau thêm nền màu xám mặc định (Xem trước lớn)Đặt lại nền sẽ giải quyết vấn đề này
Xem Nút bút và đầu vào của Ahmad Shadeed (@shadeed) trên CodePen Xem Nút bút và đầu vào của Ahmad Shadeed (@shadeed) trên CodePenThêm sau khi nhảy. Tiếp tục đọc bên dưới ↓ Gặp gỡ các Hội thảo Smashing về giao diện người dùng & UX, với các bài học thực tế, phiên trực tiếp, bản ghi video và phần Hỏi & Đáp thân thiện. Trên các hệ thống thiết kế, UX, hiệu suất web và CSS/JS. Với Brad Frost, Christine Vallaure và rất nhiều người khác Chuyển đến hội thảo ↬2. Tràn ra. Để giới hạn chiều cao của một phần tử và cho phép người dùng cuộn trong phần tử đó, hãy thêm 6. Điều này sẽ có vẻ tốt trong Chrome trên macOS. Tuy nhiên, trên Chrome Windows, thanh cuộn luôn ở đó (ngay cả khi nội dung ngắn). Điều này là do 7 sẽ hiển thị thanh cuộn bất kể nội dung là gì, trong khi 8 sẽ chỉ hiển thị thanh cuộn khi cầnBên trái. Chrome trên macOS. Phải. Chrome trên Windows. (Xem trước lớn)
Xem Pen tràn-y của Ahmad Shadeed (@shadeed) trên CodePen Xem Pen tràn-y của Ahmad Shadeed (@shadeed) trên CodePen3. Thêm Làm cho một phần tử hoạt động như một thùng chứa linh hoạt chỉ bằng cách thêm 0. Tuy nhiên, khi kích thước màn hình thu nhỏ lại, trình duyệt sẽ hiển thị thanh cuộn ngang trong trường hợp không thêm 9
Ví dụ trên sẽ hoạt động tốt trên màn hình lớn. Trên di động, trình duyệt sẽ hiển thị thanh cuộn ngang Bên trái. Một thanh cuộn ngang được hiển thị và các mục không được bao bọc. Phải. Các mặt hàng được bọc vào hai hàng. (Xem trước lớn)Giải pháp khá dễ dàng. Trình bao bọc nên biết rằng khi không có chỗ trống, nó sẽ bao bọc các mục
Xem Pen flex-wrap của Ahmad Shadeed (@shadeed) trên CodePen Xem Pen flex-wrap của Ahmad Shadeed (@shadeed) trên CodePen4. Không sử dụng .wrapper { display: flex; } .item { flex: 0 0 120px; height: 100px; } 2 khi số lượng mặt hàng linh hoạt là độngKhi 2 được áp dụng cho một hộp chứa linh hoạt, nó sẽ phân phối các phần tử và để lại một khoảng cách bằng nhau giữa chúng. Ví dụ của chúng tôi có tám mục thẻ và chúng trông đẹp mắt. Điều gì sẽ xảy ra nếu vì một lý do nào đó, số lượng mục là bảy? Trình bao bọc có tám mục. (Xem trước lớn)Trình bao bọc có bảy mục. (Xem trước lớn)Xem nội dung biện minh cho Bút của Ahmad Shadeed (@shadeed) trên CodePen Xem nội dung biện minh cho Bút của Ahmad Shadeed (@shadeed) trên CodePenTrong trường hợp này, sử dụng lưới CSS sẽ phù hợp hơn 5. Từ dài và liên kếtKhi một bài viết đang được xem trên màn hình di động, một từ dài hoặc liên kết nội tuyến có thể khiến thanh cuộn ngang xuất hiện. Sử dụng CSS' 4 sẽ ngăn điều đó xảy raXem trước lớn_______18_______(Xem trước lớn)Xem Thủ thuật CSS để biết chi tiết 6. Độ dốc trong suốtKhi thêm độ dốc với điểm bắt đầu và điểm kết thúc trong suốt, nó sẽ có màu đen trong Safari. Đó là vì Safari không nhận ra từ khóa 5. Bằng cách thay thế nó bằng 6, nó sẽ hoạt động như mong đợi. Lưu ý ảnh chụp màn hình bên dướiĐứng đầu. Chrome 70. Đáy. Safari 12. (Xem trước lớn)
Thay vào đó, điều này nên được
7. Quan niệm sai lầm về sự khác biệt giữa .wrapper { display: flex; } .item { flex: 0 0 120px; height: 100px; } 7 và .wrapper { display: flex; } .item { flex: 0 0 120px; height: 100px; } 8 trong lưới CSSTrong lưới CSS, hàm 9 có thể tạo bố cục cột đáp ứng mà không yêu cầu sử dụng truy vấn phương tiện. Để đạt được điều đó, hãy sử dụng 8 hoặc 7 (Xem trước lớn)Tóm lại, 8 sẽ sắp xếp các cột mà không mở rộng chiều rộng của chúng, trong khi đó, 7 sẽ thu gọn chúng về chiều rộng bằng 0 nhưng chỉ khi bạn có các cột trống. Sara Soueidan đã viết một bài báo xuất sắc về chủ đề này8. Cố định các phần tử lên trên cùng của màn hình khi khung nhìn không đủ caoNếu bạn cố định một phần tử lên trên cùng của màn hình, điều gì sẽ xảy ra nếu khung nhìn không đủ cao? . Nó sẽ chiếm không gian màn hình và do đó, khu vực dọc có sẵn để người dùng duyệt trang web sẽ nhỏ và không thoải mái, điều này sẽ làm giảm trải nghiệm
Trong đoạn mã trên, chúng tôi yêu cầu trình duyệt chỉ sửa tiêu đề ở trên cùng nếu chiều cao của chế độ xem bằng hoặc lớn hơn 500 pixel Cũng rất quan trọng. Khi bạn sử dụng 4, nó sẽ không hoạt động trừ khi bạn chỉ định thuộc tính 5Bản xem trước lớnXem Truy vấn phương tiện dọc bút. Đã sửa tiêu đề bởi Ahmad Shadeed (@shadeed) trên CodePen Xem Truy vấn phương tiện dọc bút. Đã sửa tiêu đề bởi Ahmad Shadeed (@shadeed) trên CodePen9. Cài đặt .wrapper { display: flex; flex-wrap: wrap; } 6 cho hình ảnhKhi thêm hình ảnh, hãy xác định 7 để hình ảnh thay đổi kích thước khi màn hình nhỏ. Nếu không, trình duyệt sẽ hiển thị thanh cuộn ngang 010. Sử dụng lưới CSS để xác định các yếu tố .wrapper { display: flex; flex-wrap: wrap; } 8 và .wrapper { display: flex; flex-wrap: wrap; } 9Lưới CSS có thể được sử dụng để xác định các phần 8 và 9 của bố cục, đây là một cách sử dụng hoàn hảo cho lưới. Do đó, chiều cao của phần 9 sẽ bằng chiều cao của phần tử 8, ngay cả khi nó trốngĐể khắc phục điều này, hãy căn chỉnh phần tử 9 về phía đầu của phần tử gốc để chiều cao của phần tử đó không bị giãn ra 1(Xem trước lớn)Xem Bút chính và phụ của Ahmad Shadeed (@shadeed) trên CodePen Xem Bút chính và phụ của Ahmad Shadeed (@shadeed) trên CodePen11. Thêm .article-content p { word-break: break-all; } 5 vào một SVGĐôi khi, khi làm việc với các SVG, 5 sẽ không hoạt động như mong đợi nếu thuộc tính 5 đã được thêm nội tuyến vào SVG. Để giải quyết vấn đề này, hãy xóa thuộc tính 5 khỏi chính SVG hoặc ghi đè lên 9Lấy ví dụ này 2Điều này sẽ không hoạt động nếu SVG có phần điền nội tuyến. Nó nên là cái này thay vào đó 312. Làm việc với các phần tử giảTôi thích sử dụng các phần tử giả bất cứ khi nào tôi có thể. Chúng cung cấp cho chúng tôi cách tạo các phần tử giả, chủ yếu cho mục đích trang trí mà không cần thêm chúng vào HTML Khi làm việc với họ, tác giả có thể quên thực hiện một trong các thao tác sau
Trong ví dụ bên dưới, chúng tôi có tiêu đề với huy hiệu là phần tử giả. Thuộc tính 0 nên được thêm vào. Ngoài ra, phần tử phải có ____21_______5 được đặt để ____21_______1 và ____21_______2 hoạt động như mong đợi13. Không gian kỳ lạ khi sử dụng .section-hero { background: linear-gradient(transparent, #d7e0ef), #527ee0; /*Other styles*/ } 5Đặt hai hoặc nhiều phần tử thành 5 hoặc 0 sẽ tạo ra một khoảng trống nhỏ giữa mỗi phần tử. Khoảng trắng được thêm vào vì trình duyệt đang diễn giải các phần tử dưới dạng từ và do đó, nó sẽ thêm một khoảng cách ký tự giữa mỗi phần tửTrong ví dụ bên dưới, mỗi mục có khoảng cách là 1 ở bên phải, nhưng khoảng trống nhỏ do sử dụng 5 đang khiến nó trở thành 3, đây không phải là kết quả mong muốn 4(Xem trước lớn)Một cách khắc phục đơn giản cho vấn đề này là đặt 4 trên phần tử cha 5(Xem trước lớn)Xem Khoảng cách khối trong dòng bút của Ahmad Shadeed (@shadeed) trên CodePen Xem Khoảng cách khối trong dòng bút của Ahmad Shadeed (@shadeed) trên CodePen14. Thêm .section-hero { background: linear-gradient(rgba(0, 0, 0,0), #d7e0ef), #527ee0; /*Other styles*/ } 5 Khi Gán Thành phần Nhãn cho Đầu vàoKhi làm việc với các phần tử biểu mẫu, hãy đảm bảo rằng tất cả các phần tử 6 đều được gán ID cho chúng. Điều này sẽ làm cho chúng dễ truy cập hơn và khi chúng được nhấp vào, đầu vào được liên kết sẽ được lấy tiêu điểm 6Xem trước kích thước lớn15. Phông chữ không hoạt động với các phần tử HTML tương tácKhi gán phông chữ cho toàn bộ tài liệu, chúng sẽ không được áp dụng cho các thành phần như 3, 2, 9 và 0. Chúng không kế thừa theo mặc định vì trình duyệt áp dụng phông chữ hệ thống mặc định cho chúngĐể khắc phục điều này, hãy gán thuộc tính phông chữ theo cách thủ công 716. Thanh cuộn ngangMột số phần tử sẽ làm xuất hiện thanh cuộn ngang do chiều rộng của các phần tử đó Cách dễ nhất để tìm ra nguyên nhân của vấn đề này là sử dụng CSS outline. Addy Osmani đã chia sẻ một tập lệnh rất tiện dụng có thể được thêm vào bảng điều khiển trình duyệt để phác thảo mọi thành phần trên trang 8(Xem trước lớn)17. Hình ảnh nén hoặc kéo dàiKhi bạn thay đổi kích thước hình ảnh trong CSS, nó có thể bị nén hoặc kéo dài nếu tỷ lệ khung hình không phù hợp với chiều rộng và chiều cao của hình ảnh Giải pháp rất đơn giản. Sử dụng CSS' 1. Chức năng của nó tương tự như chức năng của 2 đối với ảnh nền 9(Xem trước lớn)Sử dụng 1 sẽ không phải là giải pháp hoàn hảo trong mọi trường hợp. Một số hình ảnh cần xuất hiện mà không cần cắt hoặc thay đổi kích thước và một số nền tảng buộc người dùng tải lên hoặc cắt hình ảnh ở một kích thước xác định. Ví dụ: Dribbble chấp nhận tải lên hình thu nhỏ ở 800 x 600 pixel18. Thêm Đúng .wrapper {
grid-template-columns: repeat(auto-fill, minmax(100px, 1fr));
}
4 Cho Sử dụng đúng 4 cho trường 3. Điều này sẽ nâng cao trải nghiệm người dùng trong trình duyệt di động và giúp người dùng dễ tiếp cận hơnĐây là một số HTML 0Đây là giao diện của từng đầu vào sau khi được tập trung (Xem trước lớn)19. Số điện thoại trong bố cục RTLKhi thêm một số điện thoại như 8 theo bố cục từ phải sang trái, biểu tượng dấu cộng sẽ được đặt ở cuối số. Để khắc phục điều đó, hãy chỉ định lại hướng của số điện thoại 1(Xem trước lớn)Phần kết luậnTất cả các vấn đề được đề cập ở đây là một trong những vấn đề phổ biến nhất mà tôi gặp phải trong công việc phát triển giao diện người dùng của mình. Mục tiêu của tôi là giữ một danh sách để kiểm tra thường xuyên khi làm việc trên một dự án web Mục đích của CSS là gì?CSS là ngôn ngữ dành cho mô tả cách trình bày trang Web, bao gồm màu sắc, bố cục và phông chữ . Nó cho phép một người thích ứng bản trình bày với các loại thiết bị khác nhau, chẳng hạn như màn hình lớn, màn hình nhỏ hoặc máy in. CSS độc lập với HTML và có thể được sử dụng với bất kỳ ngôn ngữ đánh dấu dựa trên XML nào.
Ưu điểm của CSS là gì?Có một số lợi ích của CSS, bao gồm. . 1) Tốc độ trang nhanh hơn. Nhiều mã hơn có nghĩa là tốc độ trang chậm hơn. . 2) Trải nghiệm người dùng tốt hơn. CSS không chỉ làm cho các trang web dễ nhìn mà còn cho phép định dạng thân thiện với người dùng. . 3) Thời gian phát triển nhanh hơn. . 4) Thay đổi định dạng dễ dàng. . 5) Khả năng tương thích trên các thiết bị Các vấn đề phổ biến trong CSS là gì?Năm lỗi CSS hàng đầu . Thêm “phản hồi” vào nội dung, thay vì vùng chứa. . Tạo kiểu nội dung trước khi bạn có một số kiểu chữ mặc định. . Loay hoay với các thư viện và framework hàng giờ trước khi kiểm tra CSS của chúng. . Lãng phí thời gian làm việc xung quanh tài sản xấu. . Sử dụng bất cứ thứ gì khác ngoài bộ chọn lớp Tóm lại CSS là gì và những ưu điểm của nó?CSS xử lý thiết kế và cảm thấy là một phần của trang internet. Sử dụng CSS, bạn sẽ kiểm soát màu sắc của văn bản, thiết kế phông chữ, khoảng cách giữa các đoạn văn, kích thước và bố cục của các cột, v.v. CSS hướng dẫn hiển thị HTML về cách trang web sẽ hiển thị ở cuối người dùng |