样式优化
This commit is contained in:
@@ -7,7 +7,92 @@ import styles from '~/styles/pages/contract-template.css?url';
|
||||
import { FilePreview } from '~/components/reviews';
|
||||
|
||||
export const links = () => [
|
||||
{ rel: 'stylesheet', href: styles }
|
||||
{ rel: 'stylesheet', href: styles },
|
||||
// 添加专门的样式隔离
|
||||
{
|
||||
rel: 'stylesheet',
|
||||
href: 'data:text/css;base64,' + btoa(`
|
||||
.file-preview-isolation {
|
||||
all: unset !important;
|
||||
display: block !important;
|
||||
font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif !important;
|
||||
font-size: 14px !important;
|
||||
line-height: 1.5 !important;
|
||||
color: #333 !important;
|
||||
background: #fff !important;
|
||||
width: 100% !important;
|
||||
min-height: 600px !important;
|
||||
position: relative !important;
|
||||
isolation: isolate !important;
|
||||
contain: layout style !important;
|
||||
}
|
||||
.file-preview-isolation * {
|
||||
font-family: inherit !important;
|
||||
box-sizing: border-box !important;
|
||||
}
|
||||
.file-preview-isolation .file-preview-header {
|
||||
display: flex !important;
|
||||
justify-content: space-between !important;
|
||||
align-items: center !important;
|
||||
padding: 8px 16px !important;
|
||||
background: #f8f9fa !important;
|
||||
border-bottom: 1px solid #dee2e6 !important;
|
||||
font-size: 14px !important;
|
||||
line-height: 1.5 !important;
|
||||
max-width: none !important;
|
||||
width: 100% !important;
|
||||
text-overflow: unset !important;
|
||||
white-space: nowrap !important;
|
||||
overflow: visible !important;
|
||||
}
|
||||
.file-preview-isolation .file-preview-actions {
|
||||
display: flex !important;
|
||||
align-items: center !important;
|
||||
gap: 8px !important;
|
||||
}
|
||||
.file-preview-isolation button,
|
||||
.file-preview-isolation .ant-btn {
|
||||
padding: 4px 8px !important;
|
||||
margin: 0 2px !important;
|
||||
border: 1px solid #d9d9d9 !important;
|
||||
border-radius: 4px !important;
|
||||
background: white !important;
|
||||
color: #333 !important;
|
||||
font-size: 12px !important;
|
||||
line-height: 1.4 !important;
|
||||
cursor: pointer !important;
|
||||
display: inline-flex !important;
|
||||
align-items: center !important;
|
||||
justify-content: center !important;
|
||||
min-height: 24px !important;
|
||||
text-decoration: none !important;
|
||||
white-space: nowrap !important;
|
||||
vertical-align: middle !important;
|
||||
}
|
||||
.file-preview-isolation input,
|
||||
.file-preview-isolation .ant-input {
|
||||
padding: 4px 8px !important;
|
||||
border: 1px solid #d9d9d9 !important;
|
||||
border-radius: 4px !important;
|
||||
background: white !important;
|
||||
color: #333 !important;
|
||||
font-size: 12px !important;
|
||||
line-height: 1.4 !important;
|
||||
min-height: 24px !important;
|
||||
width: auto !important;
|
||||
max-width: 40px !important;
|
||||
text-align: center !important;
|
||||
outline: none !important;
|
||||
}
|
||||
.file-preview-isolation .file-preview-content {
|
||||
max-height: calc(100vh - 150px) !important;
|
||||
overflow: auto !important;
|
||||
background: #f8f9fa !important;
|
||||
padding: 0 !important;
|
||||
margin: 0 !important;
|
||||
}
|
||||
`)
|
||||
}
|
||||
];
|
||||
|
||||
export const meta: MetaFunction<typeof loader> = ({ data }) => {
|
||||
@@ -318,8 +403,33 @@ export default function ContractTemplateDetail() {
|
||||
<div className="content-section mb-8">
|
||||
<h3 className="section-title text-xl font-semibold mb-4">合同预览</h3>
|
||||
<div className="border border-gray-200 rounded-lg overflow-hidden">
|
||||
{/* 为FilePreview创建样式隔离容器 */}
|
||||
<div className="file-preview-container">
|
||||
{/* 使用更强的样式隔离 */}
|
||||
<div
|
||||
className="file-preview-isolation"
|
||||
style={{
|
||||
// 使用CSS变量避免继承
|
||||
'--font-family': '-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif',
|
||||
'--font-size': '14px',
|
||||
'--line-height': '1.5',
|
||||
'--text-color': '#333333',
|
||||
'--bg-color': '#ffffff',
|
||||
|
||||
// 强制重置所有可能的样式
|
||||
all: 'unset',
|
||||
display: 'block',
|
||||
fontFamily: 'var(--font-family)',
|
||||
fontSize: 'var(--font-size)',
|
||||
lineHeight: 'var(--line-height)',
|
||||
color: 'var(--text-color)',
|
||||
backgroundColor: 'var(--bg-color)',
|
||||
width: '100%',
|
||||
minHeight: '600px',
|
||||
position: 'relative',
|
||||
isolation: 'isolate', // 创建新的层叠上下文
|
||||
contain: 'layout style', // CSS容器化
|
||||
zIndex: 0
|
||||
} as React.CSSProperties}
|
||||
>
|
||||
<FilePreview
|
||||
fileContent={fileContent}
|
||||
activeReviewPointResultId={null}
|
||||
|
||||
Reference in New Issue
Block a user