闪电生成的HTML列表水平对齐问题

时间:2018-06-29 16:17:30

标签: javascript html css salesforce salesforce-lightning

我最近接手了另一个开发人员启动的一个小项目,该项目的核心内容之一是在日历上显示信息。该日历是使用Salesforce Lightning组件中的Javascript创建的,JS创建了一个无序列表,然后用充当日期的列表项填充该列表。问题就出在这里,只要一天之内显示链接之类的信息,列表项就会被移动,从而使每天的最后一行与前一天对齐,如下所示:

损坏的日历天:

enter image description here

每个列表项都包含一个段落标记,其中包含日期编号和一个链接(如果适用),每个链接之间都由一个换行符分隔。

以下是闪电组件中的javascript:

var number = DayNumber(i + 1);
// Check Date against Event Dates
for (var n = 0; n < calendar.Model.length; n++) {
  var evDate = calendar.Model[n].Date;
  var toDate = new Date(calendar.Selected.Year, calendar.Selected.Month, (i + 1));
  if (evDate.getTime() == toDate.getTime()) {
    number.className += " eventday";
    var title = document.createElement('span');
    title.className += "cld-title";
    if (typeof calendar.Model[n].Link == 'function' || calendar.Options.EventClick) {
      var a = document.createElement('a');
      a.setAttribute('href', '#');
      a.innerHTML += calendar.Model[n].Title;
      if (calendar.Options.EventClick) {
        var z = calendar.Model[n].Link;
        if (typeof calendar.Model[n].Link != 'string') {
          a.addEventListener('click', calendar.Options.EventClick.bind.apply(calendar.Options.EventClick, [null].concat(z)));
          if (calendar.Options.EventTargetWholeDay) {
            day.className += " clickable";
            day.addEventListener('click', calendar.Options.EventClick.bind.apply(calendar.Options.EventClick, [null].concat(z)));
          }
        } else {
          a.addEventListener('click', calendar.Options.EventClick.bind(null, z));
          if (calendar.Options.EventTargetWholeDay) {
            day.className += " clickable";
            day.addEventListener('click', calendar.Options.EventClick.bind(null, z));
          }
        }
      } else {
        a.addEventListener('click', calendar.Model[n].Link);
        if (calendar.Options.EventTargetWholeDay) {
          day.className += " clickable";
          day.addEventListener('click', calendar.Model[n].Link);
        }
      }
      title.appendChild(a);
    } else {
      title.innerHTML += '<a href="' + calendar.Model[n].Link + '">' + calendar.Model[n].Title + '</a>';
    }
    number.innerHTML += "</br>" + title.innerHTML;
  }
}
day.appendChild(number);

它们以嵌入式显示,并使用边框产生日历的错觉。是否有任何方法可以更改或替代此列表对齐项目的方式?

1 个答案:

答案 0 :(得分:0)

因此,问题是由无序列表如何处理内联对齐引起的。我修改了day元素的css,使其包含overflow:auto,此选项针对由文本引起的垂直对齐问题进行了调整。