亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

將唯一的類添加到部分 (PHP)

將唯一的類添加到部分 (PHP)

PHP
慕森卡 2023-09-22 17:34:55
我的網頁設計已經設置了 CMS,但我遇到了一些問題。目前,節都使用相同的 css 標簽 .SectionOuterAlt 或 .SectionOuter (如果有多個,則變為“Alt”。這同樣適用于 .SectionInner。我搜索了“SectionOuter”并發現了這行代碼。在我看來,它添加了“Alt”。問題是我需要每個部分都是唯一的,以便我可以添加 css。如果我可以保留“SectionOuter”和“SectionOuterAlt”,但為每個部分包含一個獨特的 css 類,以便我可以對每個單獨的部分進行獨特的更改,那就太好了。<section class="SectionOuter<?php echo $alt; ?>"> <section class="SectionInner<?php echo $alt; ?>">有人可以幫忙嗎?
查看完整描述

2 回答

?
繁華開滿天機

TA貢獻1816條經驗 獲得超4個贊

如果您希望每個類都有唯一的值,那么您可以執行以下操作:


<?php


for ($k = 1; $k <= 2; $k++)

    echo '<section class="SectionOuter SectionOuterAlt SectionOuterAlt-' . $k . '">';


for ($k = 1; $k <= 2; $k++)

    echo '<section class="SectionInner SectionInnerAlt SectionInnerAlt-' . $k . '">';


輸出將是這樣的:


<section class="SectionOuter SectionOuterAlt SectionOuterAlt-1">

<section class="SectionOuter SectionOuterAlt SectionOuterAlt-2">

<section class="SectionInner SectionInnerAlt SectionInnerAlt-1">

<section class="SectionInner SectionInnerAlt SectionInnerAlt-2">


查看完整回答
反對 回復 2023-09-22
?
Cats萌萌

TA貢獻1805條經驗 獲得超9個贊

另一個答案不起作用的原因是它正在應用可能不合適的類,并且可能需要替換其他類。

您需要做的是保持現有類不變,并添加一個可用于獨特樣式的新類。

在頁面頂部,您可以添加一個全局變量,例如

<?php $SectionCount = 0; ?>

然后,在要添加唯一類的地方,可以執行以下操作:

<section class="SectionOuter<?php echo $alt; ?> UniqueClass-<?php echo $SectionCount++; ?>" >
<section class="SectionInner<?php echo $alt; ?> UniqueClass-<?php echo $SectionCount++; ?>" >

這將自動向每個部分添加一個新的、唯一的類,稱為UniqueClass-nn在頁面中是唯一的),而不影響現有的功能或樣式。它也不限于每頁僅 2 個數字或部分。

使其全球化

您可以通過多種方式使其全局化,具體取決于頁面的設置方式,例如

  1. 在頭代碼中添加全局變量

  2. 在頁面上使用唯一的類body來定位每個頁面(例如.homepage .UniqueClass-1 {} .contactpage .UniqueClass-1 {} 等)

但是,如果沒有有關如何設置您當前站點的更多信息(例如 CMS,或者可能存在哪些模板文件來添加代碼),我們無法準確告訴您如何實現這一目標。

更新:

向所有頁面的每個部分添加唯一的編號實際上并不可行 - 這是可能的,但與手動添加它們相比,它需要花費同樣多(或更多)的精力(為了使其持久且一致,必須將其分配給每個部分)。

您可以:

  1. 使用頁面主體和部分類的唯一類/id 的組合(如上所述)

  2. 根據頁面的某些唯一標識符為每個部分生成一個新類

無論哪種情況,您都需要在每個頁面上使用唯一的標識符。這取決于頁面的設置方式,但如果您使用 CMS,則每個<body>元素可能會添加一個唯一的類。

1. 班級組合

例如,您的主頁可能有類似的內容,<body class="homepage page-452">“關于”頁面可能是:<body class="page-about page-818">等等。

在這種情況下,您可以使用這些類的組合來定位每個特定頁面上的部分,例如

// target ONLY UniqueClass-1 on the page with the specified body class

.page-452 .UniqueClass-1 { /* CSS HERE FOR HOMEPAGE ONLY */ } 

.page-818 .UniqueClass-1 { /* CSS HERE FOR ABOUT PAGE ONLY */ } 

如果不了解有關您的 CMS 或生成的 HTML 的更多信息,則很難給出準確的答案,但這就是您可以做到的方法。


(自從我開始回答這個問題以來,我在您發表的評論中看到您的 CMS 沒有獨特的正文類,因此您需要使用下一個選項:)


2. 生成一個獨特的類


或者,要為每個頁面生成唯一的類,如果您的 CMS 生成了 slug,則可以使用 slug,或者如果頁面標題始終是唯一的,您可以通過將其添加到聲明 $SectionCount 的頁面頂部,例如:


頁面頂部:


<?php 

$SectionCount = 0;

$pageClass = preg_replace( '/[^A-Za-z0-9_-]/', '', $pageTitle);

?>

然后您可以創建您獨特的類,如下所示:


<section class="SectionOuter<?php echo $alt; ?> ClassPrefix-<?php echo $pageClass."-".($SectionCount++); ?>" >

<section class="SectionInner<?php echo $alt; ?> ClassPrefix-<?php echo $pageClass."-".($SectionCount++); ?>" >

現在,您可以單獨定位每個頁面的每個部分,如下所示:


.ClassPrefix-generated-page-class-1 { /* CSS HERE */ }

.ClassPrefix-generated-page-class-2 { /* CSS HERE */ }

/* etc */


查看完整回答
反對 回復 2023-09-22
  • 2 回答
  • 0 關注
  • 160 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號