20

タグクラウドがあり、最もよく使用されるタグのフォントサイズを変更する方法を知る必要があります。

min-font-sizeとmax-font-sizeを設定する必要があります。

4

5 に答える 5

28

最大のタグに対する特定のタグに関連付けられたアイテムの数の線形または対数の評価を使用し、最小フォントサイズと最大フォントサイズの差を掛けて、最小フォントサイズに追加することができます。たとえば、擬似コードの計算は次のようになります。

let min = 12, max = 24
for each tag
    font = (items / items in biggest tag) * (max - min) + min
于 2010-09-15T11:57:48.117 に答える
6

@Delanの答えをより明確にするために、私はよく知っている言語でいくつかの例を作成しました。

Javascriptの例

var tags =
[
    { Name: "c#", Uses: 100 },
    { Name: ".net", Uses: 75 },
    { Name: "typescript", Uses: 50 },
    { Name: "lua", Uses: 50 },
    { Name: "javascript", Uses: 25 },
    { Name: "jquery", Uses: 1 },
    { Name: "c++", Uses: 0 },
];

var max = 100; // Should be computed
var min = 0;   // Should be computed

var fontMin = 10;
var fontMax = 20;

for (var i in tags)
{
    var tag = tags[i];

    var size = tag.Uses == min ? fontMin
        : (tag.Uses / max) * (fontMax - fontMin) + fontMin;
}

C#の例

var tags = new List<Tag>
{
    new Tag { Name = "c#", Uses = 100 },
    new Tag { Name = ".net", Uses = 75 },
    new Tag { Name = "typescript", Uses = 50 },
    new Tag { Name = "lua", Uses = 50 },
    new Tag { Name = "javascript", Uses = 25 },
    new Tag { Name = "jquery", Uses = 5 },
    new Tag { Name = "c++", Uses = 5 },
};

int max = tags.Max(o => o.Uses);
int min = tags.Min(o => o.Uses);

double fontMax = 20;
double fontMin = 10;

foreach (var tag in tags)
{
    double size = tag.Uses == min ? fontMin
        : (tag.Uses / (double)max) * (fontMax - fontMin) + fontMin;
}
于 2013-12-25T17:27:50.740 に答える
2

試す:

<div data-i2="fontSize:[10,30]">
    <span data-i2="rate:1">A</span>
    <span data-i2="rate:4">B</span>
    <span data-i2="rate:7">C</span>
    <span data-i2="rate:12">G</span>
    <span data-i2="rate:5">H</span>
</div>

それで

i2.emph();

http://jsfiddle.net/EUaC5/1/

于 2013-12-27T21:29:38.730 に答える
2

ここでは、WordPressでどのように行われるかを確認できます。

https://github.com/WordPress/WordPress/blob/26bda18a23174afb048afbe62296c76a62add542/wp-includes/category-template.php#L955

fontStep = (maxSize - minSize) / (maxCount - minCount);
fontSize = smallestFont + ( tagCount - minCount ) * fontStep;
于 2020-05-18T10:47:09.927 に答える
0

私はこれを思いついた:

max_word_count = 412  # should count from list
min_word_count = 44   # should count from list
difference = max_word_count - min_word_count
min_weight = 99 / difference * min_word_count

for each tag
    weight = 99 / difference * this_word_count - min_weight + 1

これにより、1から100までの重みのある単語が得られました。znaci.net/arhivで完全に機能します。

免責事項:私は数学が得意ではありません。

于 2018-08-27T21:38:52.247 に答える