I hope you enjoy this bit of code.
I did!
Your symbols, keywords and values should have capitalised variable names since they're global constants. However, life would be easier if your symbols were integrated into your values, and keywords prepended with symbol. Even better: none of this actually belongs in your code, and should be cut out to a database file. JSON is easiest but there are others; for instance CSV would be higher-density (but has weaker typing).
You have not enough German in some parts, and too much German in others. Your localised data (e.g. Stickstoff) are fine. Schema (e.g. elementkategorie) and code (e.g. kategorie_farben) should not be localised and should be in English. Your floating-point rendering should use localised formats; in your case it will turn your decimal point into a comma.
Don't write n.A in your database; use None and convert that to a string on render.
Don't store root in the global namespace.
Don't leave **kwargs as a dictionary; instead make a simple @dataclass or named tuple.
Don't over-abbreviate variables like BD which should be BORDER. Likewise, over-abbreviated tk keyword arguments like bg have a full-form background which should be used instead.
Rather than strings like e, prefer constants in tk like tk.E.
Your if c in ('La','Ac'): is redundant and can be deleted.
Your flag, <Enter> and <Leave> aren't doing anything so in my suggested code I deleted them.
Refactor your get_fg to be a dictionary lookup.
Prefer the "has-a" pattern over the "is-a" pattern for your element frame class; in other words, instantiate a frame instead of inheriting one.
Consider adding a (German!) title to your window.
Factor out your creation of a middle-placed label for name and symbol to a function. Better yet: don't call place, and just represent your name and symbol labels as rows within the grid that span the width of the grid and are sticky to both east and west.
Consider resizing your chart to the window by use of a container frame and pack_configure.
You should name all of your widgets. If you don't, a name will be generated for you internally and this will make debugging more difficult.
Your element grid coordinate calculations are non-reentrant and can be performed only once per process run, since your offset variables are stored as statics. You should refactor this; the nicest way is an iterator function that keeps these offsets as locals and throws them away once all elements have been placed.
Rather than binding your mouse events to all children of your element frame, consider just calling a bindtags to pass all events from the child labels to the parent frame.
Typo: it's "rutherfordium".
I thought about calling the according wikipedia site
This is easy via webbrowser.
Suggested
elements.json
[
  {
    "symbol": "H",
    "name": "Wasserstoff",
    "number": 1,
    "category": "Nichtmetalle",
    "group": 1,
    "period": 1,
    "block": "s",
    "mass": 1.01,
    "phase": "gasförmig",
    "density": 0.08,
    "electronegativity": 2.2
  },
  {
    "symbol": "He",
    "name": "Helium",
    "number": 2,
    "category": "Edelgase",
    "group": 18,
    "period": 1,
    "block": "s",
    "mass": 4.0,
    "phase": "gasförmig",
    "density": 0.18,
    "electronegativity": null
  },
  {
    "symbol": "Li",
    "name": "Lithium",
    "number": 3,
    "category": "Alkalimetalle",
    "group": 1,
    "period": 2,
    "block": "s",
    "mass": 6.94,
    "phase": "fest",
    "density": 0.53,
    "electronegativity": 0.98
  },
  {
    "symbol": "Be",
    "name": "Beryllium",
    "number": 4,
    "category": "Erdalkalimetalle",
    "group": 2,
    "period": 2,
    "block": "s",
    "mass": 9.01,
    "phase": "fest",
    "density": 1.84,
    "electronegativity": 1.57
  },
  {
    "symbol": "B",
    "name": "Bor",
    "number": 5,
    "category": "Halbmetalle",
    "group": 13,
    "period": 2,
    "block": "p",
    "mass": 10.81,
    "phase": "fest",
    "density": 2.46,
    "electronegativity": 2.04
  },
  {
    "symbol": "C",
    "name": "Kohlenstoff",
    "number": 6,
    "category": "Nichtmetalle",
    "group": 14,
    "period": 2,
    "block": "p",
    "mass": 12.01,
    "phase": "fest",
    "density": 2.26,
    "electronegativity": 2.55
  },
  {
    "symbol": "N",
    "name": "Stickstoff",
    "number": 7,
    "category": "Nichtmetalle",
    "group": 15,
    "period": 2,
    "block": "p",
    "mass": 14.0,
    "phase": "gasförmig",
    "density": 1.17,
    "electronegativity": 3.04
  },
  {
    "symbol": "O",
    "name": "Sauerstoff",
    "number": 8,
    "category": "Nichtmetalle",
    "group": 16,
    "period": 2,
    "block": "p",
    "mass": 15.99,
    "phase": "gasförmig",
    "density": 1.43,
    "electronegativity": 3.44
  },
  {
    "symbol": "F",
    "name": "Fluor",
    "number": 9,
    "category": "Halogene",
    "group": 17,
    "period": 2,
    "block": "p",
    "mass": 18.99,
    "phase": "gasförmig",
    "density": 1.7,
    "electronegativity": 3.98
  },
  {
    "symbol": "Ne",
    "name": "Neon",
    "number": 10,
    "category": "Edelgase",
    "group": 18,
    "period": 2,
    "block": "p",
    "mass": 20.17,
    "phase": "gasförmig",
    "density": 0.9,
    "electronegativity": null
  },
  {
    "symbol": "Na",
    "name": "Natrium",
    "number": 11,
    "category": "Alkalimetalle",
    "group": 1,
    "period": 3,
    "block": "s",
    "mass": 22.99,
    "phase": "fest",
    "density": 0.97,
    "electronegativity": 0.93
  },
  {
    "symbol": "Mg",
    "name": "Magnesium",
    "number": 12,
    "category": "Erdalkalimetalle",
    "group": 2,
    "period": 3,
    "block": "s",
    "mass": 24.31,
    "phase": "fest",
    "density": 1.74,
    "electronegativity": 1.31
  },
  {
    "symbol": "Al",
    "name": "Aluminium",
    "number": 13,
    "category": "Metalle",
    "group": 13,
    "period": 3,
    "block": "p",
    "mass": 26.98,
    "phase": "fest",
    "density": 2.69,
    "electronegativity": 1.61
  },
  {
    "symbol": "Si",
    "name": "Silicium",
    "number": 14,
    "category": "Halbmetalle",
    "group": 14,
    "period": 3,
    "block": "p",
    "mass": 28.08,
    "phase": "fest",
    "density": 2.34,
    "electronegativity": 1.9
  },
  {
    "symbol": "P",
    "name": "Phosphor",
    "number": 15,
    "category": "Nichtmetalle",
    "group": 15,
    "period": 3,
    "block": "p",
    "mass": 30.97,
    "phase": "fest",
    "density": 2.4,
    "electronegativity": 2.19
  },
  {
    "symbol": "S",
    "name": "Schwefel",
    "number": 16,
    "category": "Nichtmetalle",
    "group": 16,
    "period": 3,
    "block": "p",
    "mass": 32.06,
    "phase": "fest",
    "density": 2.07,
    "electronegativity": 2.58
  },
  {
    "symbol": "Cl",
    "name": "Chlor",
    "number": 17,
    "category": "Halogene",
    "group": 17,
    "period": 3,
    "block": "p",
    "mass": 35.45,
    "phase": "gasförmig",
    "density": 3.22,
    "electronegativity": 3.16
  },
  {
    "symbol": "Ar",
    "name": "Argon",
    "number": 18,
    "category": "Edelgase",
    "group": 18,
    "period": 3,
    "block": "p",
    "mass": 39.95,
    "phase": "gasförmig",
    "density": 1.78,
    "electronegativity": null
  },
  {
    "symbol": "K",
    "name": "Kalium",
    "number": 19,
    "category": "Alkalimetalle",
    "group": 1,
    "period": 4,
    "block": "s",
    "mass": 39.09,
    "phase": "fest",
    "density": 0.86,
    "electronegativity": 0.82
  },
  {
    "symbol": "Ca",
    "name": "Calicium",
    "number": 20,
    "category": "Erdalkalimetalle",
    "group": 2,
    "period": 4,
    "block": "s",
    "mass": 40.08,
    "phase": "fest",
    "density": 1.55,
    "electronegativity": 1.0
  },
  {
    "symbol": "Sc",
    "name": "Scandium",
    "number": 21,
    "category": "Übergangsmetalle",
    "group": 3,
    "period": 4,
    "block": "d",
    "mass": 44.96,
    "phase": "fest",
    "density": 2.99,
    "electronegativity": 1.36
  },
  {
    "symbol": "Ti",
    "name": "Titan",
    "number": 22,
    "category": "Übergangsmetalle",
    "group": 4,
    "period": 4,
    "block": "d",
    "mass": 47.87,
    "phase": "fest",
    "density": 4.5,
    "electronegativity": 1.54
  },
  {
    "symbol": "V",
    "name": "Vandium",
    "number": 23,
    "category": "Übergangsmetalle",
    "group": 5,
    "period": 4,
    "block": "d",
    "mass": 50.94,
    "phase": "fest",
    "density": 6.11,
    "electronegativity": 1.63
  },
  {
    "symbol": "Cr",
    "name": "Chrom",
    "number": 24,
    "category": "Übergangsmetalle",
    "group": 6,
    "period": 4,
    "block": "d",
    "mass": 51.99,
    "phase": "fest",
    "density": 7.14,
    "electronegativity": 1.66
  },
  {
    "symbol": "Mn",
    "name": "Mangan",
    "number": 25,
    "category": "Übergangsmetalle",
    "group": 7,
    "period": 4,
    "block": "d",
    "mass": 54.94,
    "phase": "fest",
    "density": 7.43,
    "electronegativity": 1.55
  },
  {
    "symbol": "Fe",
    "name": "Eisen",
    "number": 26,
    "category": "Übergangsmetalle",
    "group": 8,
    "period": 4,
    "block": "d",
    "mass": 55.85,
    "phase": "fest",
    "density": 7.87,
    "electronegativity": 1.83
  },
  {
    "symbol": "Co",
    "name": "Cobalt",
    "number": 27,
    "category": "Übergangsmetalle",
    "group": 9,
    "period": 4,
    "block": "d",
    "mass": 58.93,
    "phase": "fest",
    "density": 8.9,
    "electronegativity": 1.88
  },
  {
    "symbol": "Ni",
    "name": "Nickel",
    "number": 28,
    "category": "Übergangsmetalle",
    "group": 10,
    "period": 4,
    "block": "d",
    "mass": 58.69,
    "phase": "fest",
    "density": 8.9,
    "electronegativity": 1.91
  },
  {
    "symbol": "Cu",
    "name": "Kupfer",
    "number": 29,
    "category": "Übergangsmetalle",
    "group": 11,
    "period": 4,
    "block": "d",
    "mass": 63.54,
    "phase": "fest",
    "density": 8.92,
    "electronegativity": 1.9
  },
  {
    "symbol": "Zn",
    "name": "Zink",
    "number": 30,
    "category": "Übergangsmetalle",
    "group": 12,
    "period": 4,
    "block": "d",
    "mass": 65.38,
    "phase": "fest",
    "density": 7.14,
    "electronegativity": 1.65
  },
  {
    "symbol": "Ga",
    "name": "Gallium",
    "number": 31,
    "category": "Metalle",
    "group": 13,
    "period": 4,
    "block": "p",
    "mass": 69.72,
    "phase": "fest",
    "density": 5.9,
    "electronegativity": 1.81
  },
  {
    "symbol": "Ge",
    "name": "Germanium",
    "number": 32,
    "category": "Halbmetalle",
    "group": 14,
    "period": 4,
    "block": "p",
    "mass": 72.63,
    "phase": "fest",
    "density": 5.32,
    "electronegativity": 2.01
  },
  {
    "symbol": "As",
    "name": "Arsen",
    "number": 33,
    "category": "Halbmetalle",
    "group": 15,
    "period": 4,
    "block": "p",
    "mass": 74.92,
    "phase": "fest",
    "density": 5.73,
    "electronegativity": 2.18
  },
  {
    "symbol": "Se",
    "name": "Selen",
    "number": 34,
    "category": "Halbmetalle",
    "group": 16,
    "period": 4,
    "block": "p",
    "mass": 78.97,
    "phase": "fest",
    "density": 4.82,
    "electronegativity": 2.55
  },
  {
    "symbol": "Br",
    "name": "Brom",
    "number": 35,
    "category": "Halogene",
    "group": 17,
    "period": 4,
    "block": "p",
    "mass": 79.9,
    "phase": "flüssig",
    "density": 3.12,
    "electronegativity": 2.96
  },
  {
    "symbol": "Kr",
    "name": "Krypton",
    "number": 36,
    "category": "Edelgase",
    "group": 18,
    "period": 4,
    "block": "p",
    "mass": 83.8,
    "phase": "gasförmig",
    "density": 3.75,
    "electronegativity": 3.0
  },
  {
    "symbol": "Rb",
    "name": "Rubidium",
    "number": 37,
    "category": "Alkalimetalle",
    "group": 1,
    "period": 5,
    "block": "s",
    "mass": 85.47,
    "phase": "fest",
    "density": 1.53,
    "electronegativity": 0.82
  },
  {
    "symbol": "Sr",
    "name": "Strontium",
    "number": 38,
    "category": "Erdalkalimetalle",
    "group": 2,
    "period": 5,
    "block": "s",
    "mass": 87.62,
    "phase": "fest",
    "density": 2.63,
    "electronegativity": 0.95
  },
  {
    "symbol": "Y",
    "name": "Yttrium",
    "number": 39,
    "category": "Übergangsmetalle",
    "group": 3,
    "period": 5,
    "block": "d",
    "mass": 88.91,
    "phase": "fest",
    "density": 4.47,
    "electronegativity": 1.22
  },
  {
    "symbol": "Zr",
    "name": "Zirconium",
    "number": 40,
    "category": "Übergangsmetalle",
    "group": 4,
    "period": 5,
    "block": "d",
    "mass": 91.22,
    "phase": "fest",
    "density": 6.5,
    "electronegativity": 1.33
  },
  {
    "symbol": "Nb",
    "name": "Niob",
    "number": 41,
    "category": "Übergangsmetalle",
    "group": 5,
    "period": 5,
    "block": "d",
    "mass": 92.9,
    "phase": "fest",
    "density": 8.57,
    "electronegativity": 1.6
  },
  {
    "symbol": "Mo",
    "name": "Molybdän",
    "number": 42,
    "category": "Übergangsmetalle",
    "group": 6,
    "period": 5,
    "block": "d",
    "mass": 95.95,
    "phase": "fest",
    "density": 10.28,
    "electronegativity": 2.16
  },
  {
    "symbol": "Tc",
    "name": "Technetium",
    "number": 43,
    "category": "Übergangsmetalle",
    "group": 7,
    "period": 5,
    "block": "d",
    "mass": 98.9,
    "phase": "fest",
    "density": 11.5,
    "electronegativity": 1.9
  },
  {
    "symbol": "Ru",
    "name": "Ruthenium",
    "number": 44,
    "category": "Übergangsmetalle",
    "group": 8,
    "period": 5,
    "block": "d",
    "mass": 101.07,
    "phase": "fest",
    "density": 12.37,
    "electronegativity": 2.2
  },
  {
    "symbol": "Rh",
    "name": "Rhodium",
    "number": 45,
    "category": "Übergangsmetalle",
    "group": 9,
    "period": 5,
    "block": "d",
    "mass": 102.9,
    "phase": "fest",
    "density": 12.38,
    "electronegativity": 2.28
  },
  {
    "symbol": "Pd",
    "name": "Palladium",
    "number": 46,
    "category": "Übergangsmetalle",
    "group": 10,
    "period": 5,
    "block": "d",
    "mass": 106.42,
    "phase": "fest",
    "density": 11.99,
    "electronegativity": 2.2
  },
  {
    "symbol": "Ag",
    "name": "Silber",
    "number": 47,
    "category": "Übergangsmetalle",
    "group": 11,
    "period": 5,
    "block": "d",
    "mass": 107.87,
    "phase": "fest",
    "density": 10.49,
    "electronegativity": 1.93
  },
  {
    "symbol": "Cd",
    "name": "cadmium",
    "number": 48,
    "category": "Übergangsmetalle",
    "group": 12,
    "period": 5,
    "block": "d",
    "mass": 112.41,
    "phase": "fest",
    "density": 8.65,
    "electronegativity": 1.69
  },
  {
    "symbol": "In",
    "name": "Indium",
    "number": 49,
    "category": "Metalle",
    "group": 13,
    "period": 5,
    "block": "p",
    "mass": 114.82,
    "phase": "fest",
    "density": 7.31,
    "electronegativity": 1.78
  },
  {
    "symbol": "Sn",
    "name": "Zinn",
    "number": 50,
    "category": "Metalle",
    "group": 14,
    "period": 5,
    "block": "p",
    "mass": 118.71,
    "phase": "fest",
    "density": 5.77,
    "electronegativity": 1.96
  },
  {
    "symbol": "Sb",
    "name": "Antimon",
    "number": 51,
    "category": "Halbmetalle",
    "group": 15,
    "period": 5,
    "block": "p",
    "mass": 121.76,
    "phase": "fest",
    "density": 6.7,
    "electronegativity": 2.05
  },
  {
    "symbol": "Te",
    "name": "Tellur",
    "number": 52,
    "category": "Halbmetalle",
    "group": 16,
    "period": 5,
    "block": "p",
    "mass": 127.6,
    "phase": "fest",
    "density": 6.24,
    "electronegativity": 2.1
  },
  {
    "symbol": "I",
    "name": "Iod",
    "number": 53,
    "category": "Halogene",
    "group": 17,
    "period": 5,
    "block": "p",
    "mass": 126.9,
    "phase": "fest",
    "density": 4.94,
    "electronegativity": 2.66
  },
  {
    "symbol": "Xe",
    "name": "Xenon",
    "number": 54,
    "category": "Edelgase",
    "group": 18,
    "period": 5,
    "block": "p",
    "mass": 131.29,
    "phase": "gasförmig",
    "density": 5.9,
    "electronegativity": 2.6
  },
  {
    "symbol": "Cs",
    "name": "Caesium",
    "number": 55,
    "category": "Alkalimetalle",
    "group": 1,
    "period": 6,
    "block": "s",
    "mass": 132.91,
    "phase": "fest",
    "density": 1.9,
    "electronegativity": 0.79
  },
  {
    "symbol": "Ba",
    "name": "Barium",
    "number": 56,
    "category": "Erdalkalimetalle",
    "group": 2,
    "period": 6,
    "block": "s",
    "mass": 137.33,
    "phase": "fest",
    "density": 3.62,
    "electronegativity": 0.89
  },
  {
    "symbol": "La",
    "name": "Lanthan",
    "number": 57,
    "category": "Übergangsmetalle",
    "group": 3,
    "period": 6,
    "block": "d",
    "mass": 138.9,
    "phase": "fest",
    "density": 6.17,
    "electronegativity": 1.1
  },
  {
    "symbol": "Ce",
    "name": "Cer",
    "number": 58,
    "category": "Lanthanoide",
    "group": "La",
    "period": 6,
    "block": "f",
    "mass": 140.12,
    "phase": "fest",
    "density": 6.77,
    "electronegativity": 1.12
  },
  {
    "symbol": "Pr",
    "name": "Praseodym",
    "number": 59,
    "category": "Lanthanoide",
    "group": "La",
    "period": 6,
    "block": "f",
    "mass": 140.91,
    "phase": "fest",
    "density": 6.48,
    "electronegativity": 1.13
  },
  {
    "symbol": "Nd",
    "name": "Neodym",
    "number": 60,
    "category": "Lanthanoide",
    "group": "La",
    "period": 6,
    "block": "f",
    "mass": 144.24,
    "phase": "fest",
    "density": 7.0,
    "electronegativity": 1.14
  },
  {
    "symbol": "Pm",
    "name": "Promethium",
    "number": 61,
    "category": "Lanthanoide",
    "group": "La",
    "period": 6,
    "block": "f",
    "mass": 146.91,
    "phase": "fest",
    "density": 7.2,
    "electronegativity": null
  },
  {
    "symbol": "Sm",
    "name": "Samarium",
    "number": 62,
    "category": "Lanthanoide",
    "group": "La",
    "period": 6,
    "block": "f",
    "mass": 150.36,
    "phase": "fest",
    "density": 7.54,
    "electronegativity": 1.17
  },
  {
    "symbol": "Eu",
    "name": "Europium",
    "number": 63,
    "category": "Lanthanoide",
    "group": "La",
    "period": 6,
    "block": "f",
    "mass": 151.96,
    "phase": "fest",
    "density": 5.25,
    "electronegativity": null
  },
  {
    "symbol": "Gd",
    "name": "Gadolinium",
    "number": 64,
    "category": "Lanthanoide",
    "group": "La",
    "period": 6,
    "block": "f",
    "mass": 157.25,
    "phase": "fest",
    "density": 7.89,
    "electronegativity": 1.2
  },
  {
    "symbol": "Tb",
    "name": "Terbium",
    "number": 65,
    "category": "Lanthanoide",
    "group": "La",
    "period": 6,
    "block": "f",
    "mass": 158.93,
    "phase": "fest",
    "density": 8.25,
    "electronegativity": null
  },
  {
    "symbol": "Dy",
    "name": "Dysprosium",
    "number": 66,
    "category": "Lanthanoide",
    "group": "La",
    "period": 6,
    "block": "f",
    "mass": 162.5,
    "phase": "fest",
    "density": 8.56,
    "electronegativity": 1.22
  },
  {
    "symbol": "Ho",
    "name": "Holmium",
    "number": 67,
    "category": "Lanthanoide",
    "group": "La",
    "period": 6,
    "block": "f",
    "mass": 164.93,
    "phase": "fest",
    "density": 8.78,
    "electronegativity": 1.23
  },
  {
    "symbol": "Er",
    "name": "Erbium",
    "number": 68,
    "category": "Lanthanoide",
    "group": "La",
    "period": 6,
    "block": "f",
    "mass": 167.26,
    "phase": "fest",
    "density": 9.05,
    "electronegativity": 1.24
  },
  {
    "symbol": "Tm",
    "name": "Thulium",
    "number": 69,
    "category": "Lanthanoide",
    "group": "La",
    "period": 6,
    "block": "f",
    "mass": 168.93,
    "phase": "fest",
    "density": 9.32,
    "electronegativity": 1.25
  },
  {
    "symbol": "Yb",
    "name": "Ytterbium",
    "number": 70,
    "category": "Lanthanoide",
    "group": "La",
    "period": 6,
    "block": "f",
    "mass": 173.05,
    "phase": "fest",
    "density": 6.97,
    "electronegativity": null
  },
  {
    "symbol": "Lu",
    "name": "Lutetium",
    "number": 71,
    "category": "Lanthanoide",
    "group": "La",
    "period": 6,
    "block": "f",
    "mass": 174.97,
    "phase": "fest",
    "density": 9.84,
    "electronegativity": 1.27
  },
  {
    "symbol": "Hf",
    "name": "Hafnium",
    "number": 72,
    "category": "Übergangsmetalle",
    "group": 4,
    "period": 6,
    "block": "d",
    "mass": 178.49,
    "phase": "fest",
    "density": 13.28,
    "electronegativity": 1.3
  },
  {
    "symbol": "Ta",
    "name": "Tantal",
    "number": 73,
    "category": "Übergangsmetalle",
    "group": 5,
    "period": 6,
    "block": "d",
    "mass": 180.95,
    "phase": "fest",
    "density": 16.65,
    "electronegativity": 1.5
  },
  {
    "symbol": "W",
    "name": "Wolfram",
    "number": 74,
    "category": "Übergangsmetalle",
    "group": 6,
    "period": 6,
    "block": "d",
    "mass": 183.84,
    "phase": "fest",
    "density": 19.25,
    "electronegativity": 2.36
  },
  {
    "symbol": "Re",
    "name": "Rhenium",
    "number": 75,
    "category": "Übergangsmetalle",
    "group": 7,
    "period": 6,
    "block": "d",
    "mass": 186.21,
    "phase": "fest",
    "density": 21.0,
    "electronegativity": 1.9
  },
  {
    "symbol": "Os",
    "name": "Osmium",
    "number": 76,
    "category": "Übergangsmetalle",
    "group": 8,
    "period": 6,
    "block": "d",
    "mass": 190.23,
    "phase": "fest",
    "density": 22.59,
    "electronegativity": 2.2
  },
  {
    "symbol": "Ir",
    "name": "Irdium",
    "number": 77,
    "category": "Übergangsmetalle",
    "group": 9,
    "period": 6,
    "block": "d",
    "mass": 192.22,
    "phase": "fest",
    "density": 22.56,
    "electronegativity": 2.2
  },
  {
    "symbol": "Pt",
    "name": "Platin",
    "number": 78,
    "category": "Übergangsmetalle",
    "group": 10,
    "period": 6,
    "block": "d",
    "mass": 195.08,
    "phase": "fest",
    "density": 21.45,
    "electronegativity": 2.2
  },
  {
    "symbol": "Au",
    "name": "Gold",
    "number": 79,
    "category": "Übergangsmetalle",
    "group": 11,
    "period": 6,
    "block": "d",
    "mass": 196.97,
    "phase": "fest",
    "density": 19.32,
    "electronegativity": 2.54
  },
  {
    "symbol": "Hg",
    "name": "Quecksilber",
    "number": 80,
    "category": "Übergangsmetalle",
    "group": 12,
    "period": 6,
    "block": "d",
    "mass": 200.59,
    "phase": "flüssig",
    "density": 13.55,
    "electronegativity": 2.0
  },
  {
    "symbol": "Tl",
    "name": "Thalium",
    "number": 81,
    "category": "Metalle",
    "group": 13,
    "period": 6,
    "block": "p",
    "mass": 204.38,
    "phase": "fest",
    "density": 11.85,
    "electronegativity": 1.62
  },
  {
    "symbol": "Pb",
    "name": "Blei",
    "number": 82,
    "category": "Metalle",
    "group": 14,
    "period": 6,
    "block": "p",
    "mass": 207.2,
    "phase": "fest",
    "density": 11.34,
    "electronegativity": 2.33
  },
  {
    "symbol": "Bi",
    "name": "Bismut",
    "number": 83,
    "category": "Metalle",
    "group": 15,
    "period": 6,
    "block": "p",
    "mass": 208.98,
    "phase": "fest",
    "density": 9.78,
    "electronegativity": 2.02
  },
  {
    "symbol": "Po",
    "name": "Polonium",
    "number": 84,
    "category": "Metalle",
    "group": 16,
    "period": 6,
    "block": "p",
    "mass": 209.98,
    "phase": "fest",
    "density": 9.2,
    "electronegativity": 2.0
  },
  {
    "symbol": "At",
    "name": "Astat",
    "number": 85,
    "category": "Halogene",
    "group": 17,
    "period": 6,
    "block": "p",
    "mass": 209.99,
    "phase": "fest",
    "density": null,
    "electronegativity": 2.2
  },
  {
    "symbol": "Rn",
    "name": "Radon",
    "number": 86,
    "category": "Edelgase",
    "group": 18,
    "period": 6,
    "block": "p",
    "mass": 222.0,
    "phase": "gasförmig",
    "density": 9.73,
    "electronegativity": null
  },
  {
    "symbol": "Fr",
    "name": "Francium",
    "number": 87,
    "category": "Alkalimetalle",
    "group": 1,
    "period": 7,
    "block": "s",
    "mass": 223.02,
    "phase": "fest",
    "density": null,
    "electronegativity": 0.7
  },
  {
    "symbol": "Ra",
    "name": "Radium",
    "number": 88,
    "category": "Erdalkalimetalle",
    "group": 2,
    "period": 7,
    "block": "s",
    "mass": 226.03,
    "phase": "fest",
    "density": 5.5,
    "electronegativity": 0.9
  },
  {
    "symbol": "Ac",
    "name": "Actinium",
    "number": 89,
    "category": "Übergangsmetalle",
    "group": 3,
    "period": 7,
    "block": "d",
    "mass": 227.03,
    "phase": "fest",
    "density": 10.07,
    "electronegativity": 1.1
  },
  {
    "symbol": "Th",
    "name": "Thorium",
    "number": 90,
    "category": "Actinoide",
    "group": "Ac",
    "period": 7,
    "block": "f",
    "mass": 232.04,
    "phase": "fest",
    "density": 11.72,
    "electronegativity": 1.3
  },
  {
    "symbol": "Pa",
    "name": "Protactinium",
    "number": 91,
    "category": "Actinoide",
    "group": "Ac",
    "period": 7,
    "block": "f",
    "mass": 231.04,
    "phase": "fest",
    "density": 15.37,
    "electronegativity": 1.5
  },
  {
    "symbol": "U",
    "name": "Uran",
    "number": 92,
    "category": "Actinoide",
    "group": "Ac",
    "period": 7,
    "block": "f",
    "mass": 238.03,
    "phase": "fest",
    "density": 19.16,
    "electronegativity": 1.38
  },
  {
    "symbol": "Np",
    "name": "Neptunium",
    "number": 93,
    "category": "Actinoide",
    "group": "Ac",
    "period": 7,
    "block": "f",
    "mass": 237.05,
    "phase": "fest",
    "density": 20.45,
    "electronegativity": 1.36
  },
  {
    "symbol": "Pu",
    "name": "Plutonium",
    "number": 94,
    "category": "Actinoide",
    "group": "Ac",
    "period": 7,
    "block": "f",
    "mass": 244.06,
    "phase": "fest",
    "density": 19.82,
    "electronegativity": 1.28
  },
  {
    "symbol": "Am",
    "name": "Americium",
    "number": 95,
    "category": "Actinoide",
    "group": "Ac",
    "period": 7,
    "block": "f",
    "mass": 243.06,
    "phase": "fest",
    "density": 13.67,
    "electronegativity": 1.3
  },
  {
    "symbol": "Cm",
    "name": "Curium",
    "number": 96,
    "category": "Actinoide",
    "group": "Ac",
    "period": 7,
    "block": "f",
    "mass": 247.07,
    "phase": "fest",
    "density": 13.51,
    "electronegativity": 1.3
  },
  {
    "symbol": "Bk",
    "name": "Berkelium",
    "number": 97,
    "category": "Actinoide",
    "group": "Ac",
    "period": 7,
    "block": "f",
    "mass": 247,
    "phase": "fest",
    "density": 14.78,
    "electronegativity": 1.3
  },
  {
    "symbol": "Cf",
    "name": "Californium",
    "number": 98,
    "category": "Actinoide",
    "group": "Ac",
    "period": 7,
    "block": "f",
    "mass": 251,
    "phase": "fest",
    "density": 15.1,
    "electronegativity": 1.3
  },
  {
    "symbol": "Es",
    "name": "Einsteinium",
    "number": 99,
    "category": "Actinoide",
    "group": "Ac",
    "period": 7,
    "block": "f",
    "mass": 252,
    "phase": "fest",
    "density": 8.84,
    "electronegativity": null
  },
  {
    "symbol": "Fm",
    "name": "Fermium",
    "number": 100,
    "category": "Actinoide",
    "group": "Ac",
    "period": 7,
    "block": "f",
    "mass": 257.1,
    "phase": "fest",
    "density": null,
    "electronegativity": null
  },
  {
    "symbol": "Md",
    "name": "Medelevium",
    "number": 101,
    "category": "Actinoide",
    "group": "Ac",
    "period": 7,
    "block": "f",
    "mass": 258,
    "phase": "fest",
    "density": null,
    "electronegativity": null
  },
  {
    "symbol": "No",
    "name": "Nobelium",
    "number": 102,
    "category": "Actinoide",
    "group": "Ac",
    "period": 7,
    "block": "f",
    "mass": 259,
    "phase": "fest",
    "density": null,
    "electronegativity": null
  },
  {
    "symbol": "Lr",
    "name": "Lawrencium",
    "number": 103,
    "category": "Actinoide",
    "group": "Ac",
    "period": 7,
    "block": "f",
    "mass": 266,
    "phase": "fest",
    "density": null,
    "electronegativity": null
  },
  {
    "symbol": "Rf",
    "name": "Rutherfordium",
    "number": 104,
    "category": "Übergangsmetalle",
    "group": 4,
    "period": 7,
    "block": "d",
    "mass": 261.11,
    "phase": "fest",
    "density": 17.0,
    "electronegativity": null
  },
  {
    "symbol": "Db",
    "name": "Dubnium",
    "number": 105,
    "category": "Übergangsmetalle",
    "group": 5,
    "period": 7,
    "block": "d",
    "mass": 262.11,
    "phase": null,
    "density": null,
    "electronegativity": null
  },
  {
    "symbol": "Sg",
    "name": "Seaborgium",
    "number": 106,
    "category": "Übergangsmetalle",
    "group": 6,
    "period": 7,
    "block": "d",
    "mass": 263.12,
    "phase": null,
    "density": null,
    "electronegativity": null
  },
  {
    "symbol": "Bh",
    "name": "Bohrium",
    "number": 107,
    "category": "Übergangsmetalle",
    "group": 7,
    "period": 7,
    "block": "d",
    "mass": 262.12,
    "phase": null,
    "density": null,
    "electronegativity": null
  },
  {
    "symbol": "Hs",
    "name": "Hassium",
    "number": 108,
    "category": "Übergangsmetalle",
    "group": 8,
    "period": 7,
    "block": "d",
    "mass": 265,
    "phase": null,
    "density": null,
    "electronegativity": null
  },
  {
    "symbol": "Mt",
    "name": "Meitnerium",
    "number": 109,
    "category": "Unbekannt",
    "group": 9,
    "period": 7,
    "block": "d",
    "mass": 268,
    "phase": null,
    "density": null,
    "electronegativity": null
  },
  {
    "symbol": "Ds",
    "name": "Darmstadtium",
    "number": 110,
    "category": "Unbekannt",
    "group": 10,
    "period": 7,
    "block": "d",
    "mass": 281,
    "phase": null,
    "density": null,
    "electronegativity": null
  },
  {
    "symbol": "Rg",
    "name": "Roentgenium",
    "number": 111,
    "category": "Unbekannt",
    "group": 11,
    "period": 7,
    "block": "d",
    "mass": 280,
    "phase": null,
    "density": null,
    "electronegativity": null
  },
  {
    "symbol": "Cn",
    "name": "Copernicium",
    "number": 112,
    "category": "Unbekannt",
    "group": 12,
    "period": 7,
    "block": "d",
    "mass": 277,
    "phase": null,
    "density": null,
    "electronegativity": null
  },
  {
    "symbol": "Nh",
    "name": "Nihonium",
    "number": 113,
    "category": "Unbekannt",
    "group": 13,
    "period": 7,
    "block": "p",
    "mass": 287,
    "phase": null,
    "density": null,
    "electronegativity": null
  },
  {
    "symbol": "Fl",
    "name": "Flerovium",
    "number": 114,
    "category": "Unbekannt",
    "group": 14,
    "period": 7,
    "block": "p",
    "mass": 289,
    "phase": null,
    "density": null,
    "electronegativity": null
  },
  {
    "symbol": "Mc",
    "name": "Moscovium",
    "number": 115,
    "category": "Unbekannt",
    "group": 15,
    "period": 7,
    "block": "p",
    "mass": 288,
    "phase": null,
    "density": null,
    "electronegativity": null
  },
  {
    "symbol": "Lv",
    "name": "Livermorium",
    "number": 116,
    "category": "Unbekannt",
    "group": 16,
    "period": 7,
    "block": "p",
    "mass": 293,
    "phase": null,
    "density": null,
    "electronegativity": null
  },
  {
    "symbol": "Ts",
    "name": "Tenness",
    "number": 117,
    "category": "Unbekannt",
    "group": 17,
    "period": 7,
    "block": "p",
    "mass": 292,
    "phase": null,
    "density": null,
    "electronegativity": null
  },
  {
    "symbol": "Og",
    "name": "Oganesson",
    "number": 118,
    "category": "Unbekannt",
    "group": 18,
    "period": 7,
    "block": "p",
    "mass": 294,
    "phase": "fest",
    "density": 6.6,
    "electronegativity": null
  }
]
Python
import json
import tkinter as tk
import webbrowser
from locale import setlocale, LC_ALL, format_string
from typing import Optional, Union, Iterable, Iterator, NamedTuple
class Element(NamedTuple):
    symbol: str
    name: str
    number: int
    category: str
    group: Union[str, int]
    period: int
    block: str
    mass: float
    phase: Optional[str]
    density: Optional[float]
    electronegativity: Optional[float]
class PlacedElement(NamedTuple):
    row: int
    column: int
    element: Element
def format_float(s: Optional[float]) -> str:
    if s is None:
        return 'n.A'
    return format_string('%.2f', s)
def place_elements(elements: Iterable[Element]) -> Iterator[PlacedElement]:
    OFFSET = 2
    la_offset = 2
    ac_offset = 2
    for element in elements:
        period, group_name = element.period, element.group
        if group_name == 'La':
            group = la_offset + OFFSET
            la_offset += 1
            period += OFFSET
        elif group_name == 'Ac':
            group = ac_offset + OFFSET
            ac_offset += 1
            period += OFFSET
        else:
            group = group_name
        yield PlacedElement(row=period - 1, column=group - 1, element=element)
def load_json(filename: str = 'elements.json') -> Iterator[Element]:
    with open(filename, encoding='utf-8') as f:
        for element_dict in json.load(f):
            yield Element(**element_dict)
class ElementButton:
    BORDER = 3
    CATEGORY_COLORS = {
        'Alkalimetalle': '#fe6f61',
        'Erdalkalimetalle': '#6791a7',
        'Übergangsmetalle': '#83b8d0',
        'Metalle': '#cae2ed',
        'Halbmetalle': '#a7d6bc',
        'Nichtmetalle': '#ffde66',
        'Halogene': '#e9aa63',
        'Edelgase': '#e29136',
        'Unbekannt': '#cec0bf',
        'Lanthanoide': '#696071',
        'Actinoide': '#5b4c68',
    }
    PHASE_COLORS = {
        'fest': 'black',
        'flüssig': 'blue',
        'gasförmig': 'red',
        None:  'grey',
    }
    def __init__(self, parent: tk.Widget, placed_element: PlacedElement) -> None:
        self.element = placed_element.element
        self.background = self.CATEGORY_COLORS[self.element.category]
        self.frame = frame = tk.Frame(
            parent, relief=tk.RAISED,
            name=f'frame_{self.element.symbol}',
            background=self.background,
            border=self.BORDER,
        )
        self.frame.grid_columnconfigure(1, weight=2)
        self.frame.grid(row=placed_element.row, column=placed_element.column, sticky=tk.EW)
        self.populate()
        frame.bind('<ButtonPress-1>', self.press)
        frame.bind('<ButtonRelease-1>', self.release)
        for child in frame.winfo_children():
            child.bindtags((frame,))
    def populate(self) -> None:
        prefix = f'label_{self.element.symbol}_'
        tk.Label(
            self.frame, name=prefix + 'number',
            text=self.element.number, background=self.background,
        ).grid(row=0, column=0, sticky=tk.NW)
        tk.Label(
            self.frame, name=prefix + 'mass',
            text=format_float(self.element.mass), background=self.background,
        ).grid(row=0, column=2, sticky=tk.NE)
        tk.Label(
            self.frame, name=prefix + 'name',
            text=self.element.name, background=self.background,
        ).grid(row=1, column=0, sticky=tk.EW, columnspan=3)
        tk.Label(
            self.frame, name=prefix + 'symbol',
            text=self.element.symbol, font='bold', background=self.background,
            foreground=self.PHASE_COLORS[self.element.phase],
        ).grid(row=2, column=0, sticky=tk.EW, columnspan=3)
        tk.Label(
            self.frame, name=prefix + 'electronegativity',
            text=format_float(self.element.electronegativity), background=self.background,
        ).grid(row=3, column=0, sticky=tk.SW)
        tk.Label(
            self.frame, name=prefix + 'density',
            text=format_float(self.element.density), background=self.background,
        ).grid(row=3, column=2, sticky=tk.SE)
    def press(self, event: tk.Event) -> None:
        self.frame.configure(relief='sunken')
    def release(self, event: tk.Event) -> None:
        self.frame.configure(relief='raised')
        webbrowser.open(
            url=f'https://de.wikipedia.org/wiki/{self.element.name}',
            new=2,
        )
def main() -> None:
    setlocale(LC_ALL, 'de-DE.UTF-8')
    root = tk.Tk()
    root.title('Periodensystem der Elemente')
    frame = tk.Frame(root, name='grid_container')
    frame.pack_configure(fill=tk.BOTH)
    elements = tuple(place_elements(load_json()))
    for element in elements:
        ElementButton(frame, element)
    columns = {elm.column for elm in elements}
    for x in columns:
        frame.grid_columnconfigure(index=x, weight=1)
    root.mainloop()
if __name__ == '__main__':
    main()

     
    
AttributeError: 'Element' object has no attribute 'flag'. \$\endgroup\$testis printed. I thought about calling the according wikipedia site or write info classes for each. Not sure what to do with it. \$\endgroup\$