gpt4 book ai didi

javascript - Position::元素上的箭头之后

转载 作者:行者123 更新时间:2023-12-02 20:53:13 25 4
gpt4 key购买 nike

我做了这个,但我无法将箭头定位到元素的左侧:

enter image description here

但我想要这个:

enter image description here

我的CSS代码:

export const ClosedStyled = styled.ul<DropDown>`
${ListItem}:hover & {
max-width: 400px !important;
max-height: 400px !important;
}
max-height: 0px !important;
overflow: hidden;
-webkit-transition: all 0.2s;
-moz-transition: all 0.2s;
-ms-transition: all 0.2s;
-o-transition: all 0.2s;
transition: all 0.2s;
list-style-type: none;
margin: 0;
padding: 0;
top: 0;
left: 100%;
font-weight: 400;
position: absolute;
padding: 0px;
z-index: 2;
background: ${shade(0.4, '#3c8dbc')};
border-top-right-radius: 5px;
border-bottom-right-radius: 5px;
:before {
content: '';
position: absolute;
left: 0px;
top: 0px;
width: 0;
height: 0;
border-left: 20px solid transparent;
border-right: 20px solid transparent;
border-top: 20px solid #000;
clear: both;
`;

我在 JS 中使用 css 和情感 JS,但问题基本上只是 CSS我使用了 ::after 和边框,但我不知道如何像示例照片中那样扭转它

示例:

https://codesandbox.io/s/cranky-hamilton-oy47v?file=/src/styled.js

最佳答案

好的,我已经成功了,但有一些事情:

  • ClosedStyled,应该操纵 display 属性而不是宽度和高度,一旦用户悬停,它应该是 display:block,否则应该是 display:无
  • ClosedStyled 溢出是问题的根本原因,只需将其删除即可看到箭头

这是一个codesandbox

或者您可以在此处查看更改后的代码:

import styled from "@emotion/styled/macro";
import { shade } from "polished";
import { css } from "@emotion/core";
// Global Containers
const Container = styled.div`
height: 100%;
`;

const Main = styled.div`
display: flex;
height: calc(100% - 55px);
position: relative;
z-index: 0;
`;
// Global Containers
export const Global = {
Container,
Main
};
// header Nav
export const NavBar = styled.div`
height: 55px;
background: #3c8dbc;
display: flex;
box-shadow: 0 2px 2px rgba(0, 0, 0, 0.05), 0 1px 0 rgba(0, 0, 0, 0.05);
position: relative;
z-index: 1;
`;

export const LogoSide = styled.div`
display: flex;
background: red;
justify-content: center;
background: #3c8dbc;
padding: 10px;
width: 100%;
max-width: 250px;
height: 55px;
img {
height: 35px;
transition: all 0.2s ease;
}
`;
// header Nav
export const Header = {
NavBar,
LogoSide
};
// SideBar
const SideBodyWrap = styled.nav`
height: 100%;
max-width: 250px;
width: 100%;
color: #009688;
background: #3c8dbc;
transition: all 0.2s ease;
::-webkit-scrollbar {
width: 5px;
}

::-webkit-scrollbar-track {
-webkit-box-shadow: inset 0 0 6px rgba(0, 0, 0, 0.3);
}

::-webkit-scrollbar-thumb {
background: rgba(255, 0, 0, 0.8);
-webkit-box-shadow: inset 0 0 6px rgba(0, 0, 0, 0.5);
}
::-webkit-scrollbar-thumb:window-inactive {
background: rgba(255, 0, 0, 0.4);
}
`;

const MenuList = styled.ul`
font-family: "Ubuntu";
font-size: 14px;
font-weight: 300;
text-decoration: none;
color: #fff;
padding-top: 10px;
`;

export const ListItem = styled.li`
display: flex;
flex-direction: column;
justify-content: center;
cursor: pointer;
position: relative;
`;

export const ListWrap = styled.div`
padding: 12px 20px 12px 20px;
display: flex;
transition: all 0.5s cubic-bezier(0, 1, 0, 1);
justify-content: center;
align-items: center;
a {
display: flex;
align-items: center;
svg {
margin-right: 15px;
transition: all 0.5s cubic-bezier(0, 1, 0, 1);
}
}
& .icon-li {
margin-right: 10px;
}
& .down-up_svg,
.li-name {
display: none;
}
`;
export const ClosedStyled = styled.ul`
${ListItem}:hover & {
display: block;
}
display: none;
max-height: 400px !important;
max-width: 400px !important;
-webkit-transition: all 0.2s;
-moz-transition: all 0.2s;
-ms-transition: all 0.2s;
-o-transition: all 0.2s;
transition: all 0.2s;
list-style-type: none;
margin: 0;
padding: 0;
top: 0;
left: 100%;
font-weight: 400;
position: absolute;
padding: 0px;
z-index: 2;
background: ${shade(0.4, "#3c8dbc")};
border-top-right-radius: 5px;
border-bottom-right-radius: 5px;
:after {
content: "";
position: absolute;
left: -15px;
top: 8px;
width: 0;
overflow: hidden;
height: 0;
border-top: 15px solid transparent;
border-bottom: 15px solid transparent;
border-right: 15px solid blue;
clear: both;
z-index: 11;
}
& .li-closed {
white-space: nowrap;
padding: 10px 20px;
:hover > svg {
color: orange;
}
svg {
margin-right: 10px;
}
}
a {
font-family: "Ubuntu";
font-size: 14px;
font-weight: 300;
text-decoration: none;
color: #8aa4af;
}
`;

const DashMenu = styled.div`
display: flex;
flex-direction: column;
`;

export const SideBar = {
SideBodyWrap,
DashMenu,
ClosedStyled,
ListItem,
ListWrap,
MenuList
};
// SideBar

export const Content = styled.div`
height: 100%;
width: 100%;
background: #eee;
`;

关于javascript - Position::元素上的箭头之后,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61554618/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com