我正在处理的网页已经有一些基本样式表,其中一个包含这个规则:
address:not(:last-child),
fieldset:not(:last-child),
li:not(:last-child),
ol:not(:last-child),
p:not(:last-child),
table:not(:last-child),
ul:not(:last-child) {margin-bottom: 12px}
Run Code Online (Sandbox Code Playgroud)
这是在我的<p class="mainCopy">标签上应用12px margin-bottom ,我对此并不感兴趣.我希望能够覆盖它.mainCopy {margin-bottom: 0},但显然基本规则比我的规则更具体.这迫使我制定一个比我想要或更需要的规则,例如p.mainCopy.此外,我有时需要<li class="mainCopy">,这将迫使我添加第二条规则,以满足这一要求<li>.
有什么办法可以简单地重置这个属性,还是还原有问题的CSS声明?
是否可以cy.intercept在同一个测试中多次拦截同一个 API 调用?我尝试了以下方法:
cy.intercept({ pathname: "/url", method: "POST" }).as("call1")
// ... some logic
cy.wait("@call1")
// ... some logic
cy.intercept({ pathname: "/url", method: "POST" }).as("call2")
// ... some logic
cy.wait("@call2")
Run Code Online (Sandbox Code Playgroud)
我预计cy.wait("@call2")会等待第二次调用 API。但是,第二个cy.wait将立即继续,因为第一个 API 调用与第二个相同。
我想为<p>当前组件中的所有人添加规则。我在任何地方都找不到有关如何按标签名称添加 CSS 规则的信息(material-ui 文档、Stack Overflow 等)。
不支持吗?
我正在尝试做这样的事情:
const useStyles = makeStyles((theme: Theme) =>
createStyles({
'p': {
margin: 0,
},
someClass: {
fontSize: 14,
},
})
);
Run Code Online (Sandbox Code Playgroud)
编辑:
使用 Ryan 的解决方案有效,但会产生一个新问题:
import React from 'react';
import { makeStyles, Theme, createStyles } from '@material-ui/core';
const useStyles = makeStyles((theme: Theme) =>
createStyles({
root: {
'& p': {
margin: 0,
},
},
// I want this rule to override the rule above. It's not possible in the current configuration, because `.root …Run Code Online (Sandbox Code Playgroud) 我创建了一个小JS模块,打算制作一个npm包,但目前仅在GitHub上。该模块是用ES6和SCSS编写的,因此依赖于webpack和babel进行编译。
为了测试它,我创建了一个具有类似设置(webpack和babel)的单独项目。npm安装模块后,尝试将其导入到index.js中时,我在Chrome开发者工具中收到以下错误:(其中x为模块名称)
index.js:11 Uncaught TypeError: x__WEBPACK_IMPORTED_MODULE_1___default.a is not a constructor
at eval (index.js:11)
at Object../src/index.js (main.js:368)
at __webpack_require__ (main.js:20)
at eval (webpack:///multi_(:8081/webpack)-dev-server/client?:2:18)
at Object.0 (main.js:390)
at __webpack_require__ (main.js:20)
at main.js:69
at main.js:72
Run Code Online (Sandbox Code Playgroud)
我浏览了无数的答案,并尝试了无数的解决方案,但没有成功。我的模块的设置如下。
.babelrc
{
"presets": [
["env", {
"targets": {
"browsers": ["ie >= 11"]
}
}]
],
"plugins": [
"transform-es2015-modules-commonjs",
"transform-class-properties"
]
}
Run Code Online (Sandbox Code Playgroud)
webpack.common.js
const path = require('path')
const ExtractTextPlugin = require('extract-text-webpack-plugin')
const HtmlWebpackPlugin = require('html-webpack-plugin')
const cleanWebpackPlugin = require('clean-webpack-plugin')
const baseSCSS = new ExtractTextPlugin('main/_base.css')
const themeSCSS = new …Run Code Online (Sandbox Code Playgroud) 我只想从两个元素中获取几个属性.value从input元素获取属性按预期工作.问题是data-detail从button元素获取属性属性.它undefined在使用时返回.prop(),但在使用时按预期工作.attr().
任何人都可以解释我目睹的这种奇怪的行为吗?
HTML
<div class="formRow">
<label for="firstName">First name</label>
<div class="detailsControlBtns">
<button id="editFirstName" class="btn ctaBtn greenBtn editBtn">Edit</button>
<button class="btn ctaBtn greenBtn saveBtn" data-detail="firstName">Save</button>
<button id="closeFirstName" class="btn ctaBtn greyBtn closeBtn">Close</button>
</div>
<input type="text" id="firstName" name="firstName" value="[+firstName+]" readonly>
</div>
Run Code Online (Sandbox Code Playgroud)
JS
$(".saveBtn").on("click", function() {
var saveBtn = $(this);
// The following statement yields undefined. When using .attr() it works as expected.
var detail = saveBtn.prop("data-detail");
var relevantInput = saveBtn.parent().next();
// …Run Code Online (Sandbox Code Playgroud) 我发现有关嵌套媒体查询的所有主题都已有几年历史了.
随着CSS3的广泛传播,现在认为嵌套媒体查询在生产中是否可以安全使用?
任何支持CSS3的浏览器是否完全支持嵌套媒体查询?或者情况并非总是如此?在这种情况下,哪些浏览器不支持嵌套媒体查询?
编辑:
用于说明的嵌套媒体查询示例:
@media screen and (min-width: 1024px) {
body {
background-color: blue;
}
@media (-webkit-min-device-pixel-ratio: 1.5) {
body {
background-color: red;
}
}
}
Run Code Online (Sandbox Code Playgroud) 看起来,当缩小以前不适合其容器的元素时,margin: 0 auto将不再将元素置于其父级中(请注意,使用transform-origin: center center并不能解决此问题)。这是因为自动边距似乎在缩放之前而不是之后应用(我期望后者)。
在玩这个时,我最终设法将元素在其容器内居中,但仅使用绝对定位:
position: absolute;
transform: translateX(-50%) scale(0.5, 0.5);
left: 50%;
Run Code Online (Sandbox Code Playgroud)
这是一种非常流行的技术,但在这种特殊情况下,将 translateX 函数放在缩放函数之前非常重要,因为它们是按定义的顺序执行的。
以下是说明该问题的代码片段(也在 CodePen 上: https: //codepen.io/liranh85/pen/qVewQp)
position: absolute;
transform: translateX(-50%) scale(0.5, 0.5);
left: 50%;
Run Code Online (Sandbox Code Playgroud)
.container {
border: 3px solid black;
width: 500px;
height: 200px;
margin: 0 auto;
position: relative;
}
.scaled {
background-color: blue;
width: 600px;
/* width: 400px; */
height: 100%;
transform: scale(0.5, 0.5);
/* transform: translateX(-50%) scale(0.5, 0.5); */
margin: 0 auto;
/* position: absolute; …Run Code Online (Sandbox Code Playgroud)我在标记中创建了一个范围输入,并将其值设置为 0,如下所示:
<input type="range" min="0" max="100" step="10" value="0">
Run Code Online (Sandbox Code Playgroud)
我想根据其当前值对其进行样式设置。假设我想给它一个 50px 的边距,如果它的值为“10”。我编写了以下简单的 CSS 规则:
[type="range"][value="10"] {
margin-top: 50px;
}
Run Code Online (Sandbox Code Playgroud)
将范围输入滑动到 10 时,人们希望规则触发,但事实并非如此。然而,在标记中将输入的值设置为“10”时它会触发。
我在这里错过了什么吗?真的没有办法根据用户动态更改的值来设置范围输入的样式,仅使用 CSS 吗?
我正在尝试实现持久抽屉,可在 Material UI V3 的演示代码中找到。链接如下 https://v3.material-ui.com/demos/drawers/#persistent-drawer
我将它包装在react-frame-component 中,因为我希望它作为一个不同的iframe。当我尝试这样做时,它会呈现演示代码,但它会丢失所有材质 UI 样式。
代码如下
在 PersistentDrawerLeft.jsx 中(代码是从上面给出的链接复制的)
在 MainFile.jsx 中
import React from "react";
import Frame from "react-frame-component";
import PersistentDrawerLeft from "./PersistentDrawerLeft.jsx";
const MainFile = () => {
return (
<Frame>
<PersistentDrawerLeft />
</Frame>
)
}
export default MainFile;
Run Code Online (Sandbox Code Playgroud)
有人可以帮我解决这个问题吗?
我仔细看了看,找不到这个问题的直接答案。
我添加的包devDependencies实际上最终会出现在生产包 JS 文件中并因此影响其大小吗?还是只有dependencies进入捆绑包的那个?