我该如何编写此样式组件的 Tailwind 等效版本?
// Item is a div
const Clone = styled(Item)`
~ div {
transform: none !important;
}
`;
这来自codesandbox。当从右列拖动时,它可以防止在拖动开始时看起来像插入了额外的元素(克隆)。
我该如何编写此样式组件的 Tailwind 等效版本?
// Item is a div
const Clone = styled(Item)`
~ div {
transform: none !important;
}
`;
这来自codesandbox。当从右列拖动时,它可以防止在拖动开始时看起来像插入了额外的元素(克隆)。
我是一名初级程序员,目前正在创建一个网站作为个人项目。我进展顺利,但突然出现了意想不到的结果,我停下了脚步。我刚刚添加了所有我认为相关的代码。
问题:网格及其内部的所有内容都充当弹出窗口。gridAEP 充当初始弹出窗口顶部的弹出窗口。我试图添加一些输入框,并且我已经有一个在项目其他地方使用的设计。但是当我将类输入框添加到输入时,出现了意外的输出。
占位符文本是橙色+紫色(仅适用于标签),用户输入文本也是如此。我希望占位符和用户输入文本是纯白色的。但最重要的是,真正的问题是,当悬停时,占位符文本和用户输入文本都会消失,就像变得不可见一样,即使它们在那里(通过选择文本进行验证)。
预期输出:我期望它表现正常。背景应该是原来的颜色,但占位符应该是白色,用户输入的文本也应该是白色。此外,文本在悬停时不应变得不可见。
我已经在代码测试器中测试了以下代码,但问题仍然存在。以下是所有相关的 CSS 和 HTML 标记:
label {
display: block;
font-family: 'Raleway', sans-serif;
font-weight: 600;
background: linear-gradient(45deg, #ff7e5f, #6a5acd);
-webkit-background-clip: text;
-webkit-text-fill-color: transparent;
margin-bottom: 5px;
}
.input-box {
background: rgba(255, 255, 255, 0.1);
border: none;
border-radius: 10px;
padding: 10px;
color: white;
font-size: 14px;
margin-bottom: 10px;
transition: transform 0.3s, box-shadow 0.3s;
}
.input-box:hover {
transform: scale(1.05);
box-shadow: 0 0 10px rgba(255, 126, 95, 0.8);
}
/* Element container */
.grid {
display: grid;
gap: 20px;
padding: 0 10px; /* Ensure spacing inside the border */
z-index: 1020;
}
#addElementPopup {
width: 750px; /* Smaller size */
height: 550px;
position: fixed;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
border-radius: 20px;
background: black;
box-sizing: border-box;
display: flex;
flex-direction: column;
justify-content: space-around;
align-items: center;
gap: 20px;
z-index: 1001;
border-radius: 20px;
z-index: 1010;
}
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Test</title>
<script src="https://cdn.tailwindcss.com"></script>
</head>
<body>
<div" id="addElementOverlay">
<div id="addElementPopup" class="hidden">
<div id="gridAEP" class="grid">
<label>Input 1<input type="text" placeholder="Enter name here" class="input-box w-full" /></label>
<label>Input 2<input type="number" placeholder="Enter tier here (1-5)" class="input-box w-full"/></label>
<label>Input 3(Optional)<input type="text" placeholder="Enter emoji representing name" class="input-box w-full"/></label>
</div>
</div>
</div>
</body>
</html>
form-inline-
我正在尝试更改整个和input
的宽度label
。
您可以看到此页面上的搜索框和标签下拉,我希望它们适合同一行。https://dev.vmc.w3.uvm.edu/xana/CI4/data/archive/project/1977-1985_Vermont_Sugarbush_Health_Survey/dataset/1977-vermont-sugarbush-health-survey-tree/data#
<div class="query-editor-here " style="display:inline; ">
<div class="recline-query-editor ">
<form action=" " method="GET " class="form-inline ">
<div class="input-prepend text-query ">
<span class="add-on "><i class="icon-search "></i></span>
<label>Search</label>
<input type="text " name="q " value=" " class="span2 form-control " placeholder="Search data ... ">
</div>
<button type="submit " class="btn ">Search</button>
</form>
</div>
</div>
这是整行的代码,但上面的代码是我要更改的代码
<link href="https://cdn.jsdelivr.net/npm/[email protected]/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-QWTKZyjpPEjISv5WaRU9OFeRpok6YctnYmDr5pNlyT2bRjXh0JMhjY6hW+ALEwIH" crossorigin="anonymous">
<div class="recline-data-explorer ">
<div class="alert-messages "></div>
<div class="header clearfix ">
<div class="navigation ">
<div class="btn-group " data-toggle="buttons-radio ">
<a href="#grid " data-view="grid " class="btn btn-secondary active ">Table</a>
<a href="#graph " data-view="graph " class="btn btn-secondary ">Graph</a>
</div>
</div>
<div class="recline-results-info "> Displaying <span class="doc-count ">1000</span> records
</div>
<div class="recline-pager ">
<div class="pagination ">
<nav aria-label="Page navigation ">
<ul class="pagination d-flex ">
<li class="prev action-pagination-update page-item "><a class="page-link " href=" ">«</a></li>
<li class="active page-item "><label for="from ">From</label><a class="page-link "><input name="from " type="text " value="1 "> – <label for="to ">To</label><input name="to " type="text " value="100 "> </a></li>
<li class="next action-pagination-update page-item "><a class="page-link " href=" ">»</a></li>
</ul>
</nav>
</div>
</div>
<div class="menu-right ">
<div class="btn-group " data-toggle="buttons-checkbox ">
<a href="# " data-action="filterEditor " class="btn btn-secondary ">Filter</a>
<a href="# " data-action="fieldsView " class="btn btn-secondary active " aria-pressed="true ">Fields</a>
</div>
</div>
<div class="query-editor-here " style="display:inline; ">
<div class="recline-query-editor ">
<form action=" " method="GET " class="form-inline ">
<div class="input-prepend text-query ">
<span class="add-on "><i class="icon-search "></i></span>
<label>Search</label>
<input type="text " name="q " value=" " class="span2 form-control " placeholder="Search data ... ">
</div>
<button type="submit " class="btn ">Search</button>
</form>
</div>
</div>
</div>
我尝试添加w-50
输入,但这会在输入和标签之间留出空间,但整个表单的宽度保持不变。我尝试更改宽度<div class="recline-query-editor ">
,首先使用w-50
,但这会导致 div 占据50%
整行,然后添加,style="width:100;"
但这会使搜索标签落在搜索框下方。
如何改变表格的宽度?
这是用于处理 webapp 的,我可以在 webapp 中提供 StyleSheet 选项来更改 UI。对于隐藏一些我不想要的文本等操作,它工作得很好,但现在我遇到了一个问题,有些按钮默认处于活动状态,而我希望默认状态为关闭。具体来说,这些按钮控制项目列表中的折叠/展开视图。
这可能不是 CSS 可以做到的,这是一个非常好的答案。请注意,除了在配置文件中提供 Style 元素外,我无法更改底层文档。
这个例子 - 第一行允许我更改已启用按钮的样式,但我不想这样做,我想将所有按钮的默认设置为启用。第二行是我发现的一段代码,它允许我隐藏项目的特定部分,并证明这种 CSS 是有效的。
<Style>
.htx-ranker-column button:enabled {} # this doesnt work!
.htx-ranker-item p:nth-of-type(2) {
display: none;
}
</Style>
&
我真的很困惑在以下情况下我们是否应该使用嵌套选择器
.my-class {
& > a {
color: yellow;
}
}
对比
.my-class {
> a {
color: yellow;
}
}
根据 Kevin Powell 的说法,当我们定位元素时,嵌套选择器是需要的:https://www.youtube.com/watch?v=ljDIcBp -9sQ
但是第二个例子也运行得很好,而且它更有意义,因为它更干净,我们已经习惯了 SASS
我有一个包含两列的 CSS 网格:一列包含文本,另一列包含图像。问题是网格的高度由图像决定,而图像比文本大。我希望网格的高度跟随文本的高度。
.grid {
display: grid;
grid-template-columns: 1fr 1fr;
gap: 1em;
}
.image-container img {
max-height: 100%;
width: 100%;
height: auto;
}
.text {
background: lightblue;
}
<div class="grid">
<div class="text">
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vivamus sit amet purus ac nunc.
</div>
<div class="image-container">
<img src="https://primary-test.jwwb.nl/unsplash/vigsqYux_-8.jpg" alt="Example image" />
</div>
</div>
我可以通过在图像上添加绝对位置来解决这个问题,这样它就会从内容流中移除。但我认为网格布局系统提供了一些原生功能来做到这一点。有吗?
这是绝对位置的解决方案:
.grid {
display: grid;
grid-template-columns: 1fr 1fr;
gap: 1em;
}
.image-container {
position: relative;
}
.image-container img {
position: absolute;
max-height: 100%;
width: 100%;
height: auto;
object-fit: cover;
}
.text {
background: lightblue;
}
<div class="grid">
<div class="text">
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vivamus sit amet purus ac nunc.
</div>
<div class="image-container">
<img src="https://primary-test.jwwb.nl/unsplash/vigsqYux_-8.jpg" alt="Example image" />
</div>
</div>
以下是 Vue 模板代码:
<template>
<div :class="['lang-button', { 'in-list': listItem } ]">
<k-button id="lang-button" :raised="!listItem" clear class="py-3 px-3">
<font-awesome-icon icon="earth-americas" class="mr-2" />
{{ $t('common.language') }}
</k-button>
<ion-popover trigger="lang-button" :dismiss-on-select="true">
<ion-content class="lang-button-popover-content">
<ion-list>
<ion-item :button="true" :detail="false" @click="setLanguage('en')">English</ion-item>
<ion-item :button="true" :detail="false" @click="setLanguage('es')">Español</ion-item>
</ion-list>
</ion-content>
</ion-popover>
</div>
</template>
不幸的是,最后一项(Espanol)有一个我想删除的底部边框。在 Chrome Inspector 中,我可以这样做:
但我不知道如何在代码中设计它来实现这一点。我试过:
ion-item::part(native) {
.item-inner {
border-bottom-width: 0;
}
}
以及一堆其他变体,但都不起作用。如何删除样式div.item-inner
以删除底部边距?
谢谢。
我正在为购物页面设计产品卡片布局。该页面将以多行多列的网格形式显示卡片。我的目标是确保所有产品卡片看起来统一且平衡,无论其内容长度如何。以下是我想要实现的目标:
1-图像容器应该占据父容器高度的65% 。
2-内容容器应该占据父容器高度的35% 。
3-通过在父容器上设置最小高度,所有卡片应该具有相同的高度。
4- 布局应该在移动设备屏幕上具有两列响应。
问题:
我遇到了以下问题:
1-当我对图像容器使用 flex: 0 0 65% 并对内容容器使用 flex: 0 0 35% 时,图像容器的大小不会按预期默认为父容器的 65%。
2-如果我在图像容器中添加内容(例如,lorem * 35),其大小会因为内容而增加,而不是因为图像容器的大小而增加。
3-如果我对图像容器使用 flex:1 0 65%,对内容容器使用 flex:0 0 35%,则图像大小会增加,但内容容器的大小不会保持在 35%。
<div className="feature-item-img-container limited-item-img-container">
<div
className="limited-img-two"
style={{
backgroundImage: `url("${product.images.secondImage}")`,
}}
>
<div className="feature-item-btn-container" >
<p>Add to cart</p>
</div>
</div>
</div>
.feature-item-img-container {
flex: 1 0 65%; /* Child1 takes 65% of the height, effectively flex-grow 3 */
width: 100%;
min-height: 100%;
display: flex;
flex-direction: column;
justify-content: flex-end;
align-items: center;
cursor: pointer;
background-color: #FFDF00;
position: relative;
}
.limited-img-two {
flex: 1;
width: 100%;
height: 100%;
object-fit: cover;
transition: opacity 0.3s ease-in;
background-size: cover; /* Ensure the image covers the entire div */
background-position: center; /* Center the image within the div */
background-repeat: no-repeat; /* Prevent repeating of the image */
/* position: relative; */
display: flex;
flex-direction: column;
justify-content: flex-end;
align-items: center;
}
.limited-item-details-container {
flex: 1 0 35%;
background-color: aliceblue;
}
我需要帮助:
1-如何确保图像容器和内容容器**在遵守最小高度的同时分别占据父容器高度的 65% 和 35%?
2-为什么对图像容器使用 flex: 1 0 65% 会导致图像尺寸增加,但内容尺寸却无法保持在 35%?
3- 目前开发人员使用哪些最佳实践来创建统一的产品卡网格?
4-是否有任何推荐的资源或免费源代码网站,我可以在其中找到可重复使用的产品卡网格组件?
我有一个下拉菜单,里面有一个
当选择所有切换时,它将选择两个芯片选项,因此当我们更改浏览器缩放级别时,如果芯片选项没有空间容纳,则芯片选项应该首先换行成多行,但切换不应该换行并保持不变
最初
chip1 chip2 toggle
当缩放改变时
例如:
chip1 toggle
chip2
chip2 应该在下方换行,但 toggle 仍将保留在右侧,但当我们进一步缩放时,toggle 会移出下拉菜单。因此,在这种情况下,如果 toggle 没有空间容纳下拉菜单,则它应该换行并位于第二个 chip 选项下方
例如:
chip1
chip2
toggle
我尝试更改 css,但发生的情况是先包装切换按钮,然后包装芯片选项。我该如何满足上述要求?
以下是我的 html 更改
<ng-template>
<div class="dropdown">
<mat-chip-listbox selectable multiple aria-label="opt group selection">
<mat-chip-option
*ngFor="let group of Options | slice: 1:3"
[id]="group.id"
[value]="group"
class="filter-chip"
[selected]="groupSelected(group)"
#gp
(click)="toggleGroupSelection(gp)"
>
{{ group.groupName }}
</mat-chip-option>
</mat-chip-listbox>
<mat-slide-toggle
(change)="toggle($event)"
>All</mat-slide-toggle
>
</div>
</ng-template>
这是我的 CSS
.dropdown {
padding-top: 5px;
flex-grow: 1;
display: flex;
align-items: center;
justify-content: space-between;
}
我在 Angular 19 项目中使用 PrimeNG 版本 19,并且我有一个表,其中某些列包含长文本。当前,文本换行到多行,但如果文本超出列宽,我想用省略号 (...) 截断文本。
成分
<p-table
[value]="rulesSignal()"
[paginator]="true"
[rows]="10"
[rowHover]="true"
stripedRows
[tableStyle]="{'min-width': '50rem'}"
>
<ng-template #header>
<tr>
<th pSortableColumn="name">
Name
<p-sortIcon field="name" />
<p-columnFilter type="text" field="name" display="menu" />
</th>
<th>Note</th>
<th pSortableColumn="salience">
Salience
<p-sortIcon field="salience" />
<p-columnFilter type="text" field="salience" display="menu" />
</th>
<th>When Condition</th>
<th>Then Expression</th>
<th pSortableColumn="active">
Active
<p-sortIcon field="active" />
<p-columnFilter type="boolean" field="active" display="menu" />
</th>
</tr>
</ng-template>
<ng-template #body let-rule>
<tr>
<td>{{ rule.name }}</td>
<td>{{ rule.note }}</td>
<td>{{ rule.salience }}</td>
<td class="source-code" (click)="openCodeDialog(rule.whenText)">{{ rule.whenText }}</td>
<td class="source-code" (click)="openCodeDialog(rule.thenText)">{{ rule.thenText }}</td>
<td>{{ rule.active }}</td>
</tr>
</ng-template>
</p-table>
该 CSS 文件不起作用,nowrap 样式将使列与最长的文本一样大。
.source-code {
cursor: zoom-in;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
}
当我将其关闭时,列宽正常,但其内容不会被截断。
奖励:我希望有可调整大小的列,但该设置也会使表格溢出。