我有以下内容:
如何摆脱蓝色下划线?代码如下:
<Link to="first"><MenuItem style={{paddingLeft: 13, textDecoration: 'none'}}> Team 1 </MenuItem></Link>
MenuItem组件来自http://www.material-ui.com/#/components/menu
任何见解或指导将不胜感激。先感谢您。
我有以下内容:
如何摆脱蓝色下划线?代码如下:
<Link to="first"><MenuItem style={{paddingLeft: 13, textDecoration: 'none'}}> Team 1 </MenuItem></Link>
MenuItem组件来自http://www.material-ui.com/#/components/menu
任何见解或指导将不胜感激。先感谢您。
Answers:
我看到您正在使用内联样式。textDecoration: 'none'
用于儿童,实际上应该在儿童内部使用<Link>
,例如:
<Link to="first" style={{ textDecoration: 'none' }}>
<MenuItem style={{ paddingLeft: 13 }}>Team 1</MenuItem>
</Link>
<Link>
本质上将返回一个标准<a>
标记,这就是我们textDecoration
在此处应用规则的原因。
希望对您有所帮助
text-decoration: none;
如果您使用styled-components
,则可以执行以下操作:
import React, { Component } from 'react';
import { Link } from 'react-router-dom';
import styled from 'styled-components';
const StyledLink = styled(Link)`
text-decoration: none;
&:focus, &:hover, &:visited, &:link, &:active {
text-decoration: none;
}
`;
export default (props) => <StyledLink {...props} />;
我认为在MenuItem(和其他MaterialUI组件,例如按钮)中使用react-router-dom Link的最佳方法是在“ component”属性中传递Link
<Menu>
<MenuItem component={Link} to={'/first'}>Team 1</MenuItem>
<MenuItem component={Link} to={'/second'}>Team 2</MenuItem>
</Menu>
您需要在“ MenuItem”的“ to”属性中传递路由路径(它将向下传递到Link组件)。这样,您无需添加任何样式,因为它将使用MenuItem样式
还有另一种方法可以正确删除链接的样式。你必须给它的风格textDecoration='inherit'
和color='inherit'
您可以添加为造型像的链接标签:
<Link style={{ color: 'inherit', textDecoration: 'inherit'}}>
或者使其更通用,只需创建一个CSS类,如:
.text-link {
color: inherit;
text-decoration: inherit;
}
然后就 <Link className='text-link'>
您可以添加style={{ textDecoration: 'none' }}
在您的Link
成分,以去除下划线。您也可以css
在style
块中添加更多,例如style={{ textDecoration: 'none', color: 'white' }}
。
<h1>
<Link style={{ textDecoration: 'none', color: 'white' }} to="/getting-started">
Get Started
</Link>
</h1>
// CSS
.navigation_bar > ul > li {
list-style: none;
display: inline;
margin: 2%;
}
.link {
text-decoration: none;
}
// JSX
<div className="navigation_bar">
<ul key="nav">
<li>
<Link className="link" to="/">
Home
</Link>
</li>
</ul>
</div>
您的App.css(或对应版本)中包含核方法
a{
text-decoration: none;
}
这可以防止为所有<a>
标签加下划线,这是此问题的根本原因
在这里-> https://material-ui.com/guides/composition/#button。
这是官方的用户界面指南。也许对我来说对您有用。
但是,在某些情况下,下划线仍然存在,您可能需要使用文本装饰:“无”。为了更清洁,可以从material-ui / core导入和使用makeStyles。
import { makeStyles } from '@material-ui/core';
const useStyles = makeStyles(() => ({
menu-btn: {
textDecoration: 'none',
},
}));
const classes = useStyles();
然后在您的JSX代码中将className属性设置为{classes.menu-btn}。
style={{ backgroundImage: "none" }}
只有这个对我有用
对我有用的是:
<Link to="/" style={{boxShadow: "none"}}>
textDecoration: 'none'
该上的<Link />
组件而不是它的孩子。