cytoscape js多行标签-第二行使用不同的CSS规则 [英] cytoscape js multiline label - different css rule for second line

查看:79
本文介绍了cytoscape js多行标签-第二行使用不同的CSS规则的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我在标签上使用多行选项(使用\ n描绘行),并且想知道第二行是否可以使用不同的字体大小(在示例中,"test"要小一些)字体大小

I am using a multiline option on a label (using \n to delineate lines) and would like to know if it is possible to use a different font size for the second line (in the example having 'test' be a smaller font size

推荐答案

如果您确实需要这个,我会使用cytoscape-node-html-label扩展名(您可以找到它

if you really need this, I would use the cytoscape-node-html-label extension (you can find it here). According to the documentation, you can use this code to get a multiline multistyle label:

document.addEventListener("DOMContentLoaded", function() {
  var sampleDataset = [{
    group: "nodes",
    data: {
      id: "16150999",
      name: "xps plrmr",
      type: 0,
      code: "7704322293"
    },
    classes: "class1"
  }];
  var mainNodeDiameter = 20;
  var otherNodesDiameter = 17;

  var cy = (window.cy = cytoscape({
    container: document.getElementById("cy"),

    minZoom: 0.1,
    maxZoom: 3,
    zoom: 0.5,

    style: [{
        selector: "node", // default node style
        style: {
          width: mainNodeDiameter + "px",
          height: mainNodeDiameter + "px",
          "overlay-padding": "5px",
          "overlay-opacity": 0,
          "z-index": 10,
          "border-width": 2,
          "border-opacity": 0
        }
      },
      {
        selector: "node[type=0]",
        style: {
          "background-color": "#7CACC2"
        }
      },
      {
        selector: "edge", // default edge style
        style: {
          "curve-style": "unbundled-bezier",
          "control-point-distance": 30,
          "control-point-weight": 0.5,
          opacity: 0.9,
          "overlay-padding": "3px",
          "overlay-opacity": 0,
          label: "data(title)",
          "font-family": "FreeSet,Arial,sans-serif",
          "font-size": 9,
          "font-weight": "bold",
          "text-background-opacity": 1,
          "text-background-color": "#ffffff",
          "text-background-padding": 3,
          "text-background-shape": "roundrectangle",
          width: 1
        }
      },
      {
        selector: "node:selected",
        style: {
          "border-width": 2,
          "border-style": "solid",
          "border-color": "#3f3f3f",
          "border-opacity": 1
        }
      }
    ],

    layout: {
      name: "random"
    },
    elements: sampleDataset
  }));

  // add html labels to cytoscape
  cy.nodeHtmlLabel([{
    query: "node[type=0]",
    cssClass: "cy-title",
    valign: "top",
    valignBox: "top",
    tpl: function(data) {
      return '<div><p class="cy-title__name">' + data.name + '</p><p class="cy-title__info">' + data.code + "</p></div>";
    }
  }]);
  
  // fit cy to viewport
  cy.ready(function () {
    cy.fit();
    cy.center();
  });
});

body {
  font: 14px helvetica neue, helvetica, arial, sans-serif;
}

#cy {
  height: 100%;
  width: 100%;
  float: left;
  position: absolute;
  left: 0;
  top: 0;
  bottom: 0;
  right: 0;
  z-index: 999;
}

h1 {
  opacity: 0.5;
  font-size: 1em;
  font-weight: bold;
}

p {
  margin: 0;
  padding: 0;
}

.cy-title {
  text-align: center;
  font-size: 13px;
  width: 130px;
  color: #2b2b2b;
  background: radial-gradient(#87CeFa, #7B68EE);
  text-transform: capitalize;
}

.cy-title__name {
  font-size: 1.5em;
}

.cy-title__info {
  font-size: 0.9em;
}

<html>

<head>
  <meta charset=utf-8 />
  <meta name="viewport" content="user-scalable=no, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, minimal-ui">
  <script src="https://cdnjs.cloudflare.com/ajax/libs/cytoscape/3.2.17/cytoscape.min.js"></script>
  <script src="https://unpkg.com/jquery@3.3.1/dist/jquery.js"></script>
  <script src="https://unpkg.com/dagre@0.7.4/dist/dagre.js"></script>
  <script src="https://cdn.rawgit.com/cytoscape/cytoscape.js-dagre/1.5.0/cytoscape-dagre.js"></script>
  <script src="https://cdn.jsdelivr.net/npm/cytoscape-node-html-label@1.1.3/dist/cytoscape-node-html-label.min.js"></script>
</head>

<body>
  <div id="cy"></div>
</body>

</html>

这样,您可以为每个标签使用html样式.

This way, you can use html styling for each label.

这篇关于cytoscape js多行标签-第二行使用不同的CSS规则的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆