>웹 프론트엔드 >CSS 튜토리얼 >CSS만 사용하여 '역원' 모양을 어떻게 만들 수 있나요?

CSS만 사용하여 '역원' 모양을 어떻게 만들 수 있나요?

DDD
DDD원래의
2024-12-10 14:33:10410검색

How Can I Create an

CSS로 '역원' 도형 만들기

'역원'이라는 개념은 속이 꽉 찬 원을 결합한 도형을 말합니다. 반전 컷아웃으로 독특한 효과를 만들어보세요. CSS로 이 모양을 구현하는 것은 어려워 보일 수 있지만 이미지를 사용하지 않고도 가능합니다.

배경 그라데이션 솔루션

한 가지 접근 방식은 CSS3 방사형 배경 그라데이션을 활용하는 것입니다. 이 솔루션을 사용하면 원과 컷아웃 사이에 간격을 만들어 더욱 복잡한 효과를 얻을 수 있습니다.

CSS:

.inversePair {
  border: 1px solid black;
  display: inline-block;
  position: relative;
  height: 100px;
  text-align: center;
  line-height: 100px;
  vertical-align: middle;
}

#a {
  width: 100px;
  border-radius: 50px;
  background: grey;
  z-index: 1;
}

#b {
  width: 200px;
  /* Adjust margin/padding for desired "gap" */
  padding-left: 30px;
  margin-left: -30px;
  /* Real borders */
  border-left: none;
  -webkit-border-top-right-radius: 20px;
  -webkit-border-bottom-right-radius: 20px;
  -moz-border-radius-topright: 20px;
  -moz-border-radius-bottomright: 20px;
  border-top-right-radius: 20px;
  border-bottom-right-radius: 20px;
  /* Inverse circle "cut" */
  background-image: -moz-radial-gradient(
    -23px 50%,
    circle closest-corner,
    transparent 0,
    transparent 55px,
    black 56px,
    grey 57px
  );
  background-image: -webkit-radial-gradient(-23px 50%, circle closest-corner, rgba(0, 0, 0, 0) 0, rgba(0, 0, 0, 0) 55px, black 56px, grey 57px);
  background-image: -ms-radial-gradient(-23px 50%, circle closest-corner, rgba(0, 0, 0, 0) 0, rgba(0, 0, 0, 0) 55px, black 56px, grey 57px);
  background-image: -o-radial-gradient(-23px 50%, circle closest-corner, rgba(0, 0, 0, 0) 0, rgba(0, 0, 0, 0) 55px, black 56px, grey 57px);
  background-image: radial-gradient(-23px 50%, circle closest-corner, rgba(0, 0, 0, 0) 0, rgba(0, 0, 0, 0) 55px, black 56px, grey 57px);
}

Z- 인덱스 솔루션

또 다른 접근 방식은 Z-인덱싱을 사용하여 역원 효과를 만드는 데 중점을 둡니다. 원하는 결과를 얻으려면 요소를 신중하게 배치해야 합니다.

HTML:

<div>

CSS:

.inversePair {
  border: 1px solid black;
  background: grey;
  display: inline-block;
  position: relative;
  height: 100px;
  text-align: center;
  line-height: 100px;
  vertical-align: middle;
}

#a {
  width: 100px;
  border-radius: 50px;
}

#a:before {
  content: "";
  left: -6px;
  top: -6px;
  position: absolute;
  z-index: -1;
  width: 112px;
  height: 112px;
  border-radius: 56px;
  background-color: white;
}

#b {
  width: 200px;
  z-index: -2;
  padding-left: 50px;
  margin-left: -55px;
  overflow: hidden;
  -webkit-border-top-right-radius: 20px;
  -webkit-border-bottom-right-radius: 20px;
  -moz-border-radius-topright: 20px;
  -moz-border-radius-bottomright: 20px;
  border-top-right-radius: 20px;
  border-bottom-right-radius: 20px;
}

#b:before {
  content: "";
  left: -58px;
  top: -7px;
  position: absolute;
  width: 114px;
  height: 114px;
  border-radius: 57px;
  background-color: black;
}

위 내용은 CSS만 사용하여 '역원' 모양을 어떻게 만들 수 있나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.