Circular Menu



Một nửa vòng tròn Menu CSS hiện lên khi hover vào hamburger menu.

1. HTML

							

Pure CSS Circular Menu

Hover to show menu!

2. CSS

							body {
  font-family: Alegreya Sans;
  background: #feeded;
}
.menu {
  position: relative;
  background: #cd3e3d;
  width: 3em;
  height: 3em;
  border-radius: 5em;
  margin: auto;
  margin-top: 5em;
  margin-bottom: 5em;
  cursor: pointer;
  border: 1em solid #fdaead;
}
.menu:after {
  content: "";
  position: absolute;
  top: 1em;
  left: 1em;
  width: 1em;
  height: 0.2em;
  border-top: 0.6em double #fff;
  border-bottom: 0.2em solid #fff;
}
.menu ul {
  list-style: none;
  padding: 0;
}
.menu li {
  width: 5em;
  height: 1.4em;
  padding: 0.2em;
  margin-top: 0.2em;
  text-align: center;
  border-top-right-radius: 0.5em;
  border-bottom-right-radius: 0.5em;
  transition: all 1s;
  background: #fdaead;
  opacity: 0;
  z-index: -1;
}
.menu:hover li {
  opacity: 1;
}
/**
 * Add a pseudo element to cover the space
 * between the links. This is so the menu
 * does not lose :hover focus and disappear
 */
.menu:hover ul::before {
  position: absolute;
  content: "";
  width: 0;
  height: 0;
  display: block;
  left: 50%;
  top: -5.0em;
  /**
   * The pseudo-element is a semi-circle
   * created with CSS. Top, bottom, and right
   * borders are 6.5em (left being 0), and then
   * a border-radius is added to the two corners
   * on the right.
   */
  border-width: 6.5em;
  border-radius: 0 7.5em 7.5em 0;
  border-left: 0;
  border-style: solid;
  /**
   * Have to have a border color for the border
   * to be hoverable. I'm using a very light one
   * so that it looks invisible.
   */
  border-color: rgba(0,0,0,0.01);
  /**
   * Put the psuedo-element behind the links
   * (So they can be clicked on)
   */
  z-index: -1;
  /**
   * Make the cursor default so it looks like
   * nothing is there
   */
  cursor: default;
}
.menu a {
  color: white;
  text-decoration: none;
  /**
   * This is to vertically center the text on the
   * little tab-like things that the text is on.
   */
  line-height: 1.5em;
}
.menu a {
  color: white;
  text-decoration: none;
}
.menu ul {
  transform: rotate(180deg) translateY(-2em);
  transition: 1s all;
}
.menu:hover ul {
  transform: rotate(0deg) translateY(-1em);
}
.menu li:hover {
  background: #cd3e3d;
  z-index: 10;
}

.menu li:nth-of-type(1) {
  transform: rotate(-90deg);
  position: absolute;
  left: -1.2em;
  top: -4.2em;
}
.menu li:nth-of-type(2) {
  transform: rotate(-45deg);
  position: absolute;
  left: 2em;
  top: -3em;
}
.menu li:nth-of-type(3) {
  position: absolute;
  left: 3.4em;
  top: 0.3em;
}
.menu li:nth-of-type(4) {
  transform: rotate(45deg);
  position: absolute;
  left: 2em;
  top: 3.7em;
}
.menu li:nth-of-type(5) {
  transform: rotate(90deg);
  position: absolute;
  left: -1.2em;
  top: 5em;
}
.hint {
  text-align: center;
}						

3. JAVASCRIPT

													



Mong bài viết giúp ích được các bạn phần nào trong thiết kế Web. Hãy nhấn nút để mọi người cùng học hỏi kiến thức mới nhé. Cảm ơn các bạn đã quan tâm Forum.