- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在实现一个简单的 React 组件 ( example 2 here: navigation menu ),但添加了 React-Router 以在导航菜单上单击以激活不同的路由。我让它几乎可以正常工作:单击按钮的文本会将您带到不同的路径,但是单击其他地方 inline-block
只会更改样式(激活 class="active"
) 但不会更改路由(onClick
监听器位于 li
标记上)。
如下所示,您可以单击服务
text 来激活服务路径,但是如果您单击关于
block 而不是 block 本身的文本,它会将 About
注册为事件但不会更改路由。
这是 React 和我的 css 中的相关代码:
导航类扩展 React.Component {
constructor() {
super()
this.state = {chosenIndex: 0, tabs: ['Home', 'Services', 'About', 'Contact us']}
this.selectTab = this.selectTab.bind(this)
}
selectTab(e, i) {
e.preventDefault()
this.setState({chosenIndex: i})
}
render() {
let buttons = this.state.tabs.map((tab, index) => {
return (
<li key={index} className={index === this.state.chosenIndex ? 'active' : 'inactive'} onClick={event => this.selectTab(event, index)}><Link to={nameToPath(tab)}>{tab}</Link></li>
)
})
return (
<BrowserRouter>
<div>
<ul>
{buttons}
</ul>
<Match exactly pattern="/" component={Home} />
<Match pattern="/services" component={Services} />
<Match pattern="/about" component={About} />
<Match pattern="/contactus" component={ContactUs} />
<Miss component={Home} />
</div>
</BrowserRouter>
)
}
CSS:
html{
font:24px normal Arial, sans-serif;
color:#626771;
background-color:#fff;
}
body{
padding:60px;
text-align: center;
}
ul{
list-style:none;
display: inline-block;
}
ul li{
display: inline-block;
padding: 10px 20px;
cursor:pointer;
background-color:#eee;
text-decoration: none;
color:#7B8585;
transition:0.3s;
font: bold 14px Arial;
}
ul li:hover {
background-color:#beecea;
}
ul li.active {
background-color:#41c7c2;
}
a {
text-decoration: none;
color: #7b8585;
display: block;
}
ul li.active a {
color: #fff;
}
p {
padding-top:15px;
font-size:16px;
}
最佳答案
应该足够简单,可以通过添加 display: block
来使用 CSS 修复到 <a>
的 CSS .
编辑 <li>
上的填充也应该移动到 <a>
. display: block
不扩展 <a>
到其父级的填充中,因此单击父级的填充将不会向 <a>
注册点击事件。 .如果将填充移动到 <a>
,然而,然后单击填充是单击<a>
,因此导航将按预期进行。
导航仅在您单击文本时发生,因为只有文本是 <a>
的一部分<Link>
渲染的标签.
默认情况下,<a>
内联呈现(请参阅下面代码段中 <li>
和 <a>
之间的样式差异)。
li {
background: red;
padding: 10px 20px;
width: 50px;
}
a {
background: blue;
color: white;
text-align: center;
}
<ul>
<li>
<a href='#'>Link</a>
</li>
</ul>
但是,当您添加 display: block;
到 anchor 元素的 CSS 并将填充从列表元素移动到 anchor ,您会看到它扩展到占据整个 <li>
.
li {
background: red;
width: 100px;
}
a {
background: blue;
padding: 10px 20px;
color: white;
text-align: center;
display: block;
}
<ul>
<li>
<a href='#'>Link</a>
</li>
</ul>
关于css - React-Router 链接整个(内联) block 而不仅仅是文本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41304499/
我的 blockly.js 文件中有以下代码 Blockly.Blocks['account_number'] = { // Other type. init: function() {
首先抱歉我的英语不好,我正在开发 Image Splitter 应用程序并且已经完成,但是现在的要求是当图像被分割(分成几 block /chunks)那么图像 block 的每一 block (ch
#value: 消息的返回值,当发送到一个 block 时,是该 block 中最后一句话的值。所以 [ 1 + 2. 3 + 4. ] value 计算结果为 7。我发现有时很难使用。有没有办法显式
我想构建一个包含 3 div 的响应式导航栏相同的 width和 height . 我申请了 inline-block到每个 block ,我得到一个我不理解的行为。 问题是,第三 block 由 2
我希望使用 Blockly 来允许非技术人员用户指定测试脚本。 它的一部分需要一个文件选择器,但是,我看不到 Blockly 有一个。是吗? 实际上,我找不到完整的标准 block 列表。谁有网址?
仅当您位于父 block 内部时,父 block 的 props.isSelected 才为 true,但当您在该 block 的 innerBlocks 内进行编辑时则不然。 如何从父 block
仅当您位于父 block 内部时,父 block 的 props.isSelected 才为 true,但当您在该 block 的 innerBlocks 内进行编辑时则不然。 如何从父 block
我想创建一个具有不同背景颜色 block 和不同悬停颜色 block 的导航栏 block 。我可以分别创建不同的悬停颜色 block 或不同的背景颜色 block ,但不能一起创建。所以请告诉我如何
我正在使用看到的代码 here定期执行代码: #define DELAY_IN_MS 1000 __block dispatch_time_t next = dispatch_time(DISPATC
为什么 block 必须被复制而不是保留?两者在引擎盖下有什么区别?在什么情况下不需要复制 block (如果有)? 最佳答案 通常,当您分配一个类的实例时,它会进入堆并一直存在,直到它被释放。但是,
我想弄清楚我这样做是否正确: 如果我有一个 block ,我会这样做: __weak MyClass *weakSelf = self; [self performBlock:^{
我想制作一个 4 block 导航菜单,虽然我已经显示了一个 block ,然后单击打开第二个 block ,从第二个开始选择并再次单击出现第三个 block ,第四个 block 相同...这是我的
例如,这样更好吗? try { synchronized (bean) { // Write something } } catch (Int
我想让一只乌龟检查前方小块的颜色并决定移动到哪里。如果前面的补丁不是白色的,那么乌龟向左或向右旋转并移动。我的 If 决策结构中出现错误,显示“此处应为 TRUE?FALSE,而不是 block 列表
我想创建一个 block 对角矩阵,其中对角 block 重复一定次数,非对角 block 都是零矩阵。例如,假设我们从一个矩阵开始: > diag.matrix [,1] [,2] [
我是区 block 链新手。突然我有一个问题,我们是否可以通过区 block 号来访问以太坊区 block 链上之前的区 block 数据。 例如我创建了一个block1、block2。 block
我是区 block 链新手。突然我有一个问题,我们是否可以通过区 block 号来访问以太坊区 block 链上之前的区 block 数据。 例如我创建了一个block1、block2。 block
我创建了一个等距环境,全部使用 Javascript 和 HTML5 (2D Canvas),大部分情况下工作正常。我面临的问题是使用不同高度的图 block ,然后对图 block 上的对象索引进行
这是令我困惑的代码: public Integer getInteger(BlockingQueue queue) { boolean interrupted = false; try
我有一个基于 TPL 数据流的应用程序,它仅使用批处理 block 和操作 block 就可以正常工作。 我已经添加了一个 TransformBlock 以尝试在发布到批处理 block 之前从源中转
我是一名优秀的程序员,十分优秀!