Hướng dẫn how do you make a triangle with css? - Làm thế nào để bạn tạo ra một hình tam giác với css?

HTML

Bạn có thể làm cho họ với một div duy nhất. Thật tốt khi có các lớp học cho mỗi khả năng hướng.

CSS

Ý tưởng là một hộp có chiều rộng và chiều cao bằng không. Chiều rộng và chiều cao thực tế của mũi tên được xác định bởi chiều rộng của đường viền. Ví dụ, trong một mũi tên UP, đường viền dưới cùng được tô màu trong khi bên trái và phải trong suốt, tạo thành hình tam giác.

.arrow-up {
  width: 0; 
  height: 0; 
  border-left: 5px solid transparent;
  border-right: 5px solid transparent;
  
  border-bottom: 5px solid black;
}

.arrow-down {
  width: 0; 
  height: 0; 
  border-left: 20px solid transparent;
  border-right: 20px solid transparent;
  
  border-top: 20px solid #f00;
}

.arrow-right {
  width: 0; 
  height: 0; 
  border-top: 60px solid transparent;
  border-bottom: 60px solid transparent;
  
  border-left: 60px solid green;
}

.arrow-left {
  width: 0; 
  height: 0; 
  border-top: 10px solid transparent;
  border-bottom: 10px solid transparent; 
  
  border-right:10px solid blue; 
}

Thử nghiệm

Xem hoạt hình bút để giải thích các hình tam giác CSS của Chris Coyier (@Chriscoyier) trên Codepen.

Ví dụ


Dave Everitt viết trong:

Đối với một tam giác đều, nó có giá trị chỉ ra rằng chiều cao là 86,6% chiều rộng SO

Chúng tôi chuyển từ bố cục bảng sang các thùng chứa nổi và sau đó từ các thùng chứa nổi sang flexbox và lưới. Sẽ có ý nghĩa khi chuyển từ sử dụng biên giới sang các phương pháp mới phù hợp hơn cho công việc.

Làm thế nào để bạn tạo một tam giác đều trong CSS?
W3Schools is Powered by W3.CSS.

Làm thế nào để tôi tập trung một tam giác trong CSS?

Chỉ cần sử dụng bên trái: calc (50% - 50px).

Làm cách nào để tạo một hình dạng mũi tên trong CSS?

  1. Mũi tên. Để tạo một mũi tên đơn giản mà không có đuôi, hãy tạo một hộp có chiều rộng và chiều cao, đường viền, cũng như không có đường viền bên trái và trên cùng. Để tạo một mũi tên lên, thêm biến đổi: xoay (225deg); thuộc tính và để tạo một mũi tên xuống, thêm biến đổi: xoay (45deg); thuộc tính để xoay mũi tên tương ứng là 225 và 45 độ ...
  2. Trong bài đăng này, chúng ta sẽ thấy các phương pháp khác nhau để vẽ một tam giác trong CSS. Chúng tôi sẽ tập trung vào ba đặc biệt: phương pháp truyền thống sử dụng biên giới và hai tùy chọn hiện đại hơn với clip-pathlinear-gradient().
  3. Sử dụng border
  4. Đây là cách vẽ một hình tam giác trong CSS, và nó có vẻ như là cách phổ biến nhất cho đến nay. Nó bao gồm có một đường viền màu duy nhất, để lại những người khác trong suốt. Đây là những bước để đạt được nó:
  5. Đặt widthheight là 0.
  6. Đặt màu viền thành trong suốt.

Đặt đường viền trên cùng thành 0.

Hướng dẫn how do you make a triangle with css? - Làm thế nào để bạn tạo ra một hình tam giác với css?

Đặt biên giới thành một nửa chiều rộng.
 

Đặt đường viền dưới cùng để có chiều cao đầy đủ.

Đặt một màu cho đường viền dưới cùng.works in all browsers, and it will continue working in future browsers, but it is not how the borders were intended to be used.

Nghe có vẻ không dễ dàng, nhưng nó tương đối đơn giản:

Kích thước đường viền có thể được điều chỉnh để chỉ hình tam giác theo bất kỳ hướng nào & nbsp;

  • Tùy thuộc vào nơi bạn muốn tam giác trỏ đến, bạn sẽ điều chỉnh kích thước và màu sắc của các đường viền tương ứng.
  • Phương pháp này đã xuất hiện từ lâu và nó là một "hack". Nó hoạt động trong tất cả các trình duyệt và nó sẽ tiếp tục hoạt động trong các trình duyệt trong tương lai, nhưng đó không phải là cách các đường viền được dự định sẽ được sử dụng.

Do đó, nó không chơi tốt khi chúng tôi cố gắng thêm nội dung. Nó không quy mô đúng, vì vậy kích thước container cần được biết và các giá trị cần phải được cụ thể cho tam giác đó.

  • Ưu điểm của phương pháp này:
  • Hỗ trợ: Nó hoạt động trong mọi trình duyệt (thậm chí các phiên bản cũ của IE)

Đơn giản: Thật dễ dàng để lập trình, như được hiển thị trong ví dụ trên.

Nhược điểm của phương pháp này:

Khó bảo trì: Thay đổi kích thước đòi hỏi phải thay đổi mã.

Thiết kế cứng nhắc: Nếu chúng ta thêm nội dung, kết quả có thể sẽ không phải là dự kiến.

Biên giới sẽ hoạt động rất tốt trong một tình huống cụ thể: các hình tam giác trống với kích thước cố định. Ngoài ra, vấn đề phát sinh. Chúng ta phải nhớ rằng đây là một giải pháp hacky từ thời điểm không có lựa chọn nào khác.

  1. Sử dụng background-image
  2. Chúng tôi có thể sử dụng SVG nội tuyến trong CSS, sẽ hoạt động tốt ... nhưng nó sẽ là gian lận, vì chúng tôi sẽ sử dụng một hình ảnh thay vì CSS.
  3. Thay vào đó, hãy tạo tam giác bằng cách sử dụng background-image nhưng không có hình ảnh thực tế. Chúng ta có thể đạt được điều đó bằng cách thêm hai độ dốc tuyến tính. Một cho mỗi bên của tam giác.
  4. Ý tưởng sẽ là làm điều này:

Thêm linear-gradient về phía dưới cùng bên phải (trong suốt đến màu đỏ với sự thay đổi khó khăn ở mức 50%)

Hướng dẫn how do you make a triangle with css? - Làm thế nào để bạn tạo ra một hình tam giác với css?

Thêm linear-gradient về phía trên cùng bên phải (màu đỏ để trong suốt với sự thay đổi khó khăn ở mức 50%)

Đặt kích thước của cả hai chiều rộng linear-gradient đến 50%

Vị trí một linear-gradient ở đầu và một ở cuối container.

Ngoài ra, vì container vẫn là một hình chữ nhật, định dạng, định vị và tạo kiểu văn bản trong hình tam giác là "tự nhiên" hơn.

Ưu điểm của phương pháp này:

  • Hỗ trợ: Nó hoạt động ngay cả trong các trình duyệt cũ hơn (IE10 trở lên.)
  • Phản hồi: Nó điều chỉnh kích thước của container.
  • Hoàn hảo cho văn bản: Hình dạng container không bị ảnh hưởng, vì vậy việc thêm văn bản hoặc nội dung khác là đơn giản.

Nhược điểm của phương pháp này:

  • Phức tạp: Tùy chọn này có lẽ là lựa chọn phức tạp nhất để phát triển.
  • Tricky cho các tùy chọn: Ví dụ, có một gradient tuyến tính phức tạp hơn (nhưng khả thi.)

Sử dụng clip-path

clip-path là "mới nhất" trong ba. Và tôi đặt "mới nhất" giữa các trích dẫn vì nó đã được hỗ trợ trong hơn 10 năm ở Firefox và Chrome (với tiền tố), và sự hỗ trợ của nó bắt đầu cùng thời điểm với linear-gradient().

Với clip-path, bạn có thể xác định một phần cắt sẽ là phần có thể nhìn thấy duy nhất của phần tử. Để vẽ một hình tam giác, chúng ta chỉ phải xác định đa giác với ba điểm như trong hình:

Hướng dẫn how do you make a triangle with css? - Làm thế nào để bạn tạo ra một hình tam giác với css?

.arrow-up {
  width: 0; 
  height: 0; 
  border-left: 5px solid transparent;
  border-right: 5px solid transparent;
  
  border-bottom: 5px solid black;
}

.arrow-down {
  width: 0; 
  height: 0; 
  border-left: 20px solid transparent;
  border-right: 20px solid transparent;
  
  border-top: 20px solid #f00;
}

.arrow-right {
  width: 0; 
  height: 0; 
  border-top: 60px solid transparent;
  border-bottom: 60px solid transparent;
  
  border-left: 60px solid green;
}

.arrow-left {
  width: 0; 
  height: 0; 
  border-top: 10px solid transparent;
  border-bottom: 10px solid transparent; 
  
  border-right:10px solid blue; 
}
7 làm cho nó dễ dàng và đáp ứng

Mã để đạt được điều này là cực kỳ đơn giản nhờ hàm

.arrow-up {
  width: 0; 
  height: 0; 
  border-left: 5px solid transparent;
  border-right: 5px solid transparent;
  
  border-bottom: 5px solid black;
}

.arrow-down {
  width: 0; 
  height: 0; 
  border-left: 20px solid transparent;
  border-right: 20px solid transparent;
  
  border-top: 20px solid #f00;
}

.arrow-right {
  width: 0; 
  height: 0; 
  border-top: 60px solid transparent;
  border-bottom: 60px solid transparent;
  
  border-left: 60px solid green;
}

.arrow-left {
  width: 0; 
  height: 0; 
  border-top: 10px solid transparent;
  border-bottom: 10px solid transparent; 
  
  border-right:10px solid blue; 
}
7. Chúng tôi chỉ cần phần dưới bên trái (0% 100%), tọa độ trung tâm (50% 0%) và tọa độ dưới cùng (100% 100%) và chúng tôi đã hoàn thành!

Một điều quan trọng cần nhớ là tất cả mọi thứ bên ngoài khu vực cắt về cơ bản đã biến mất. Và điều đó không chỉ bao gồm nội dung mà còn cả các yếu tố "bên ngoài" như bóng tối, phác thảo hoặc đường viền. (Adam Kuhn có một giải pháp tuyệt vời cho việc này.)

Các đa giác chỉ là phần nổi của tảng băng: vòng tròn, hình elip và với sự hỗ trợ mới nhất cho

.arrow-up {
  width: 0; 
  height: 0; 
  border-left: 5px solid transparent;
  border-right: 5px solid transparent;
  
  border-bottom: 5px solid black;
}

.arrow-down {
  width: 0; 
  height: 0; 
  border-left: 20px solid transparent;
  border-right: 20px solid transparent;
  
  border-top: 20px solid #f00;
}

.arrow-right {
  width: 0; 
  height: 0; 
  border-top: 60px solid transparent;
  border-bottom: 60px solid transparent;
  
  border-left: 60px solid green;
}

.arrow-left {
  width: 0; 
  height: 0; 
  border-top: 10px solid transparent;
  border-bottom: 10px solid transparent; 
  
  border-right:10px solid blue; 
}
9, về cơ bản, bất kỳ hình dạng nào bạn có thể tưởng tượng đều có thể với clip-path.

Ưu điểm của phương pháp này:

  • Dễ dàng: clip-path là một người thay đổi trò chơi cho CSS. Nó mạnh mẽ và linh hoạt, cho phép bất kỳ hình dạng và không chỉ hình tam giác.
  • Phản hồi: Nó điều chỉnh kích thước của container và các thay đổi của nó.
  • Có thể tùy chỉnh: Độ dốc và hiệu ứng không phải là vấn đề miễn là chúng nằm trong khu vực có thể nhìn thấy.within the visible area.

Nhược điểm của phương pháp này:

  • Phức tạp: Tùy chọn này có lẽ là lựa chọn phức tạp nhất để phát triển.
  • Tricky cho các tùy chọn: Ví dụ, có một gradient tuyến tính phức tạp hơn (nhưng khả thi.)

Sử dụng clip-path

clip-path là "mới nhất" trong ba. Và tôi đặt "mới nhất" giữa các trích dẫn vì nó đã được hỗ trợ trong hơn 10 năm ở Firefox và Chrome (với tiền tố), và sự hỗ trợ của nó bắt đầu cùng thời điểm với linear-gradient().

Với clip-path, bạn có thể xác định một phần cắt sẽ là phần có thể nhìn thấy duy nhất của phần tử. Để vẽ một hình tam giác, chúng ta chỉ phải xác định đa giác với ba điểm như trong hình:

.arrow-up {
  width: 0; 
  height: 0; 
  border-left: 5px solid transparent;
  border-right: 5px solid transparent;
  
  border-bottom: 5px solid black;
}

.arrow-down {
  width: 0; 
  height: 0; 
  border-left: 20px solid transparent;
  border-right: 20px solid transparent;
  
  border-top: 20px solid #f00;
}

.arrow-right {
  width: 0; 
  height: 0; 
  border-top: 60px solid transparent;
  border-bottom: 60px solid transparent;
  
  border-left: 60px solid green;
}

.arrow-left {
  width: 0; 
  height: 0; 
  border-top: 10px solid transparent;
  border-bottom: 10px solid transparent; 
  
  border-right:10px solid blue; 
}
7 làm cho nó dễ dàng và đáp ứngeach method has its pros and cons, and there are situations in which one may be better than the others. If borders work for what you need, use them. But it would be natural for that method to fade away with time.

Mã để đạt được điều này là cực kỳ đơn giản nhờ hàm

.arrow-up {
  width: 0; 
  height: 0; 
  border-left: 5px solid transparent;
  border-right: 5px solid transparent;
  
  border-bottom: 5px solid black;
}

.arrow-down {
  width: 0; 
  height: 0; 
  border-left: 20px solid transparent;
  border-right: 20px solid transparent;
  
  border-top: 20px solid #f00;
}

.arrow-right {
  width: 0; 
  height: 0; 
  border-top: 60px solid transparent;
  border-bottom: 60px solid transparent;
  
  border-left: 60px solid green;
}

.arrow-left {
  width: 0; 
  height: 0; 
  border-top: 10px solid transparent;
  border-bottom: 10px solid transparent; 
  
  border-right:10px solid blue; 
}
7. Chúng tôi chỉ cần phần dưới bên trái (0% 100%), tọa độ trung tâm (50% 0%) và tọa độ dưới cùng (100% 100%) và chúng tôi đã hoàn thành!

Làm thế nào để bạn tạo một tam giác đều trong CSS?

CSS (SCSS)..
Phông chữ-gia đình: Roboto ;.
Màu sắc: #666 ;.
Tương tự: 150px ;.

Làm thế nào để bạn tạo một hình tam giác với bán kính biên giới trong CSS?

CSS (SCSS)..
* Một hình tam giác với (hoặc không có) góc tròn ..
* @param: $ kích thước - chiều rộng/chiều cao của tam giác.Mặc định: 2REM ..
* @param: $ Bối cảnh - Bất kỳ khai báo nền CSS hợp lệ nào.....
* @param: $ RADIUS - Đúng hoặc Sai (nếu sai, không có bán kính).....
@mixin tam giác ($ size: 2REM, $ Nền: RED, $ RADIUS: TRUE) {.

Làm thế nào để tôi tập trung một tam giác trong CSS?

Chỉ cần sử dụng bên trái: calc (50% - 50px).left: calc(50% - 50px) .

Làm cách nào để tạo một hình dạng mũi tên trong CSS?

Mũi tên.Để tạo một mũi tên đơn giản mà không có đuôi, hãy tạo một hộp có chiều rộng và chiều cao, đường viền, cũng như không có đường viền bên trái và trên cùng.Để tạo một mũi tên lên, thêm biến đổi: xoay (225deg);thuộc tính và để tạo một mũi tên xuống, thêm biến đổi: xoay (45deg);thuộc tính để xoay mũi tên tương ứng là 225 và 45 độ ...make a box with a width and height, border, as well as zero left and top borders. To make an up arrow, add the transform: rotate(225deg); property, and to make a down arrow, add the transform: rotate(45deg); property to rotate the arrow to 225 and 45 degrees respectively ...