index.html 1.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889
  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <meta charset="utf-8">
  5. <title>Cyber mouse</title>
  6. <style>
  7. @layer picture-border{
  8. picture {
  9. display: grid;
  10. width: 400px;
  11. aspect-ratio: 4/3;
  12. --bc: red; /*border-color*/
  13. --bs: 10px; /*border-size*/
  14. --cs: 20px; /*cut-size*/
  15. grid-template-rows: var(--cs) auto 1fr;
  16. }
  17. picture > figcaption {
  18. grid-area: 1/1/2/2;
  19. justify-self: end;
  20. min-width: 50%;
  21. min-height: calc(var(--cs) * 2 + var(--bs));
  22. display: grid;
  23. place-items: center;
  24. text-align: center;
  25. background-color: var(--bc);
  26. clip-path: polygon(
  27. var(--cs) 0,
  28. 100% 0,
  29. 100% 100%,
  30. 0 100%,
  31. 0 var(--cs)
  32. );
  33. }
  34. picture > img{
  35. grid-area: 2/1/4/2;
  36. width: 100%;
  37. height: 100%;
  38. object-fit: cover;
  39. --em: .5;
  40. clip-path: polygon(
  41. calc(var(--cs) + var(--bs) * var(--em)) var(--bs),
  42. calc(100% - var(--bs)) var(--bs),
  43. calc(100% - var(--bs)) calc(100% - var(--cs) - var(--bs)),
  44. calc(50% + var(--cs) - var(--bs) * var(--em)) calc(100% - var(--cs) - var(--bs)),
  45. calc(50% - var(--bs) * var(--em)) calc(100% - var(--bs)),
  46. var(--bs) calc(100% - var(--bs)),
  47. var(--bs) calc(var(--cs) + var(--bs) * var(--em))
  48. );
  49. }
  50. picture::before{ /*border*/
  51. content: "";
  52. grid-area: 2/1/4/2;
  53. background-color: var(--bc);
  54. clip-path: polygon(
  55. var(--cs) 0,
  56. 100% 0,
  57. 100% calc(100% - var(--cs)),
  58. calc(50% + var(--cs)) calc(100% - var(--cs)),
  59. 50% 100%,
  60. 0% 100%,
  61. 0 var(--cs)
  62. );
  63. }
  64. }
  65. @layer demo {
  66. html, body { height: 100% }
  67. body { margin: 0; display: grid; place-items: center; background-color: black}
  68. }
  69. </style>
  70. </head>
  71. <body>
  72. <picture>
  73. <img src="mouse.png" alt="mouse">
  74. <figcaption>Mouse</figcaption>
  75. </picture>
  76. <script>
  77. // https://codepen.io/MarkBoots/pen/bGJJpMj
  78. </script>
  79. </body>
  80. </html>