34?cn_substr("@) に変更します。 me",30 )..." を選択して保存します。">

ホームページ  >  記事  >  CMS チュートリアル  >  DedeCMS は簡単なタイトルが空かどうかをどのように判断し、完全なタイトルを表示しますか?

DedeCMS は簡単なタイトルが空かどうかをどのように判断し、完全なタイトルを表示しますか?

藏色散人
藏色散人オリジナル
2019-12-19 09:27:232429ブラウズ

DedeCMS は簡単なタイトルが空かどうかをどのように判断し、完全なタイトルを表示しますか?

DedeCMS は、単純なタイトルが空かどうかをどのように判断し、完全なタイトルを表示しますか?

まえがき

誰もが遭遇したことがあると思いますが、DedeCMS システムプログラムを使用して Web サイトを開発する場合、Web ページのレイアウトによる多くの制限に遭遇します。記事タイトルの幅には文字数制限が必要で、マウスを置いたときに完全なタイトルが表示されるように、a タグに title 属性を追加するのが一般的な方法です。

ただし、一部の文字が切れているため、タイトルは不完全です。タイトルの呼び方は他にもいくつかあります。たとえば、タイトルを判定する際に、DedeCMS がタイトルの短縮形であると判断した場合、完全なタイトルが表示されます。は空です。

推奨学習: 梦Weavercms

具体的な方法は次のとおりです:

方法 1:

{dede:field name='array' runphp='yes'} if (@me['shorttitle']=='') @me=@me['title'];else @me=@me['shorttitle'];{/dede:field}

方法 2:

[field:array runphp='yes'] if (@me['shorttitle']=='') @me=@me['title'];else @me=@me['shorttitle'];[/field:array]

この方法は、{dede:arclist} タグに適用できます。

方法 3:

タイトルが長すぎる場合、すべてを表示するとレイアウトが混乱し、外観に影響を与えることがあります。しかし、表示部分はユーザーエクスペリエンスに影響を与えます。タイトルが一定の長さの範囲内であれば完全なタイトルが表示されることを期待しますが、タイトルが古い場合は一定の長さのみが表示され、その後に省略記号が表示され、その後マウスを上に移動すると、タイトルの内容全体が表示されます。この方法では、レイアウトには影響しません。レイアウトには、タイトルの内容もすべて表示されます。

プログラムの修正を必要とせず、テンプレートの修正だけを行う方法を紹介します。たとえば、次のタイトル リストでは、最長のタイトルが 50 バイトであり、30 バイトだけが表示されます。テンプレート コードは次のとおりです。問題は、 [field :title function='( strlen("@me")>34 ? cn_substr("@me",30)."..." : "@me" ) ' /] を使用して、元の文字列を置き換えることです。 [field:title / ], タイトル出力時に追加の判定処理があり、まずタイトルが 34 バイトより大きいかどうかを判定し、大きい場合は 30 バイトの長さだけを出力し、省略記号を付けます。追加した。 Title="[field:title /]" は影響を受けず、マウスを上に移動するとタイトルの内容全体が表示されます。

方法 4:

テンプレートを変更する方法には、上記の方法のほかに、プログラミングや CSS などの方法もあります。ただし、テンプレートによって解決できる問題については、プログラミングは必要ありません。 CSS メソッドは次のとおりです:

<ul>
     {dede:arclist titlelen=&#39;50&#39; row=&#39;10&#39;}
     <li><a title="[field:title /]" href="[field:filename /]">[field:title function=&#39;( strlen("@me")>30 ? cn_substr("@me",30)."..." : "@me" )&#39;/]</a></li>
     {/dede:arclist}
</ul>

説明: width:120px; 制限された長さ、text-overflow:ellipsis: オブジェクト内のテキストがオーバーフローした場合、省略マークが表示されます。 .、空白: nowrap: テキストを強制的に 1 行で表示します。overflow:hidden: オーバーフローのコンテンツは非表示になります。関連する使用上のヒントについては、次の記事を参照してください: https://www.jb51.net/article/50258.htm

CSS の方法は、テンプレートを変更するよりも簡単です。残念ながら、text-overflow:ellipsis 属性は Firefox では効果がありません。そこで、上記の方法でテンプレートを変更してみましょう。

私は最近別の問題を発見しました。タイトルのリンクで、リンクできる場合はリンクできますが、リンクできない場合は接続されません。解決策は次のとおりです:

<a style="width:120px; text-overflow:ellipsis; white-space:nowrap; overflow:hidden;" title="DedeCMS2007即将发布" href=" " >DedeCMS2007即将发布</a>

以上がDedeCMS は簡単なタイトルが空かどうかをどのように判断し、完全なタイトルを表示しますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。